如何阻止手机底部页面随着模态框的滚动而滚动


  大致思路是这样的:当模态框出现的时候,给底部页面设置固定定位。模态框关闭的时候,去除固定定位。当我这么写的时候,底部页面滚动的问题解决了,但是又出现了一个新问题:每次模态框出现的时候,底部页面会自动跳到顶部去。所以,我添加了一个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