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