使用過bootstrap modal(模態框)組件的人都有一種困惑, 好好的一個彈出框怎麼就無法垂直居中了呢?剛巧在做一個eit項目,由於此項目裡面一些框架要遵循nttdata的一些規則,故用到了Bootstrap這個東東,第一次碰到這個東東,有很大抵觸,覺得不好,但用起來我覺得和別的彈出框真是沒什麼兩樣。廢話少說,切入正題,Bootstrap彈出框垂直居中的問題,因為我拿到的彈出框樣式並非垂直居中,而是top 10%,但頁面長了,就顯得特別噁心。
解決方案如下所示:
1.在css裡,找到
.modal.fade.in { top: 10%; }
這個樣式,修改它就ok了,由於css中是全局的,同時在頁面中也可定義為在頁面中某個modal的(高度)位置,方法如下:
<style> #myModal-help { top:300px; } </style>
#myModal-help這個為modal的id,這樣設定就ok了。
2.在js中,
我用的是bootstrap-modal.js(如果用的是bootstrap.js或是bootstrap.min.js,同樣可以,但需要找到對應位置)。
在js中找到(紅色是我加入的方法):
var left = ($(document.body).width() - that.$element.width()) / 2; <strong><span style="color: #ff0000">var top = ($(document.body).height() - that.$element.height()) / 2; var scrollY = document.documentElement.scrollTop || document.body.scrollTop; //滚动条解决办法 var top = (window.screen.height / 4) + scrollY - 120; //滚动条解决办法 </span></strong>console.log(left); that.$element .addClass('in') .attr('aria-hidden', false) .css({ left: left, top: top, margin: "0 auto" }); that.enforceFocus()
找到後,將紅色的添加進去,就ok了,這樣一來就所有的彈出框都垂直居中了。
以上所述是小編給大家介紹的Bootstrap彈出框(modal)垂直居中的問題及解決方案詳解的相關知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對PHP中文網的支持!
更多Bootstrap彈出框(modal)垂直居中的問題及解決方案詳解相關文章請關注PHP中文網!