大致思路是這樣的:當模態框出現的時候,給底部頁面設置固定定位。模態框關閉的時候,去除固定定位。當我這么寫的時候,底部頁面滾動的問題解決了,但是又出現了一個新問題:每次模態框出現的時候,底部頁面會自動跳到頂部去。所以,我添加了一個scroll方法,讓頁面回到原來的位置上去。代碼如下:
$('#myModal').modal({backdrop: 'static', keyboard: false}); /*點擊空白處或者按ESC鍵模態框不隱藏 */
$('#myModal').modal('hide');/*模態框默認隱藏*/
var Top = [] ;/*頁面滾動過的距離*/
$(window).scroll(function() {
var top = $(window).scrollTop();
Top.push(top);
})
$("body").on("click",'a',function() {/*a標簽:點擊出現模態框*/
var top = 0;
var length = Top.length;
if(length == 0) {
top = 0;
}else {
top = -Top[length-1];/*最后一次滾動過的距離*/
}
$("ul.payConsum-record").css({'position':'fixed','top':top,'left':0,'right':0,'bottom':0,'margin-top':0});/*ul.payConsum-record:底部頁面元素,設置為固定定位*/
});
$('.close').on('click',function() {/*關閉模態框*/
var length = Top.length;
$("ul.payConsum-record").css({'position':''});
$(window).scrollTop(Top[length-2]);
});
這里我的模態框是直接使用的bootstrap里面的。當通過手機瀏覽器打開時,底部頁面是不會再滾動了。但是放到微信上又出現了新問題,模態框滾動的時候底部會出現一層白色的,研究半天才發現是bootstrap里的模態框出現后會自動生成一個 .modal-backdrop 元素。所以我把這個去掉之后,給模態框重新寫了顏色。至此,微信上的模態框問題也解決了。
——來自咕嚕的魚
