Bootstrap彈出框(modal)垂直居中的問(wèn)題及解決方案詳解

字號(hào):


    這篇文章主要介紹了Bootstrap彈出框(modal)垂直居中的問(wèn)題及解決方案詳解的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下
    使用過(guò)bootstrap modal(模態(tài)框)組件的人都有一種困惑, 好好的一個(gè)彈出框怎么就無(wú)法垂直居中了呢?剛巧在做一個(gè)eit項(xiàng)目,由于此項(xiàng)目里面一些框架要遵循nttdata的一些規(guī)則,故用到了Bootstrap這個(gè)東東,第一次碰到這個(gè)東東,有很大抵觸,覺(jué)得不好,但用起來(lái)我覺(jué)得和別的彈出框真沒(méi)什么兩樣。廢話少說(shuō),切入正題,Bootstrap彈出框垂直居中的問(wèn)題,因?yàn)槲夷玫降膹棾隹驑邮讲⒎谴怪本又?,而是top 10%,但頁(yè)面長(zhǎng)了,就顯得特別惡心。
    解決方案如下所示:
    1.在css里,找到
    .modal.fade.in {
    top: 10%;
    }
    這個(gè)樣式,修改它就ok了,由于css中是全局的,同時(shí)也可在頁(yè)面中定義到某個(gè)modal的(高度)位置,方法如下:
    <style>
    #myModal-help
    {
    top:300px;
    }
    </style>
    #myModal-help這個(gè)為modal的id,這樣設(shè)置就ok了。
    2.在js中
    我用的是bootstrap-modal.js(如果用的是bootstrap.js或者是bootstrap.min.js,同樣可以,但需要找到相應(yīng)位置)。
    在js中找到(紅色是我添加的方法):
    var left = ($(document.body).width() - that.$element.width()) / 2; 
    <strong><span>var top = ($(document.body).height() - that.$element.height()) / 2;
    var scrollY = document.documentElement.scrollTop || document.body.scrollTop; //滾動(dòng)條解決辦法
    var top = (window.screen.height / 4) + scrollY - 120; //滾動(dòng)條解決辦法
    </span></strong>console.log(left); 
    that.$element 
    .addClass('in') 
    .attr('aria-hidden', false) 
    .css({ 
    left: left, 
    top: top, 
    margin: "0 auto"
    });
    that.enforceFocus()
    找到后,將紅色的添加進(jìn)去,就ok了,這樣一來(lái)就所有的彈出框都垂直居中了。
    以上所述是小編給大家介紹的Bootstrap彈出框(modal)垂直居中的問(wèn)題及解決方案詳解的相關(guān)知識(shí),希望對(duì)大家有所幫助