前端之路:jq解决点击穿透,滑动穿透事件。
点击穿透:(模态框下的的dom,触发其点击相关事件,一般为移动端)解决方案:阻止冒泡$("上层容器选择器").on("touchmove",function(event){event.preventDefault();});滑动穿透:(模态框下的的dom,滑动模态框层,底部也随之滑动。)解决方案1:将底部dom 设置固定高度。失去滚动条,一般为body。当然
·
点击穿透:(模态框下的的dom,触发其点击相关事件,一般为移动端)
解决方案:
阻止冒泡
$("上层容器选择器").on("touchmove",function(event){
event.preventDefault();
});
滑动穿透:(模态框下的的dom,滑动模态框层,底部也随之滑动。)
解决方案1:
将底部dom 设置固定高度。失去滚动条,一般为body。当然了,也可以是 内容撑开的 使出现 滚动条 的容器。DIV什么的,如果上层模态事件中,需要用到监听滚动条的时候。这个办法会导致错误。建议用方案呢2
body {
overflow: hidden;
max-height:xxx; //xxx为,无法使 其出现滚动条的高度
}
}
jq:
模态框出现后。
$("").css("overflow","hidden");
$("").css("max-height","xxx");
模态消失后,还原即可
用 $("").attr("style","原本样式");
解决方案2:
阻止其冒泡事件。
阻止冒泡
$("上层容器选择器").on("touchmove",function(event){
event.preventDefault();
});
解决方案3
应用 CSS 属性 touch-action: none;这个属性 可以使得 触摸滑动时候不产生 默认行为,但是 touch 事件照样触发。touch-action 还有很多选项,可以百度了解。
$("").attr("touch-action","none");
$("").removeAttr("touch-action");
更多推荐
已为社区贡献1条内容
所有评论(0)