如何阻止手機底部頁面隨着模態框的滾動而滾動


  大致思路是這樣的:當模態框出現的時候,給底部頁面設置固定定位。模態框關閉的時候,去除固定定位。當我這么寫的時候,底部頁面滾動的問題解決了,但是又出現了一個新問題:每次模態框出現的時候,底部頁面會自動跳到頂部去。所以,我添加了一個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 元素。所以我把這個去掉之后,給模態框重新寫了顏色。至此,微信上的模態框問題也解決了。

 

                                                                       ——來自咕嚕的魚


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM