点击穿透:(模态框下的的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");

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐