Javascript 固定父项时,CSS移动菜单平滑滚动临时禁用
在移动电话上,如果您位于可滚动容器(位于固定容器内)的顶部,并且“错误地”向上滚动而不是向下滚动,滚动被临时禁用 我认为这是CSS属性Javascript 固定父项时,CSS移动菜单平滑滚动临时禁用,javascript,jquery,css,scroll,css-position,Javascript,Jquery,Css,Scroll,Css Position,在移动电话上,如果您位于可滚动容器(位于固定容器内)的顶部,并且“错误地”向上滚动而不是向下滚动,滚动被临时禁用 我认为这是CSS属性-webkit溢出滚动时出现的反弹效应的结果:touch被添加到可滚动的容器中。此CSS属性的目的是在移动浏览器上启用平滑滚动 我把这个问题贴在这里是因为我想分享我的解决方案,这样其他人就不会花时间想出解决方案了。不幸的是,我还没有找到解决这个问题的问题 请查看下面的移动菜单,然后阅读下面发布的解决方案 如您所见,有四个固定的容器,每个容器都包含一个可滚动的d
-webkit溢出滚动时出现的反弹效应的结果:touch代码>被添加到可滚动的容器中。此CSS属性的目的是在移动浏览器上启用平滑滚动
我把这个问题贴在这里是因为我想分享我的解决方案,这样其他人就不会花时间想出解决方案了。不幸的是,我还没有找到解决这个问题的问题
请查看下面的移动菜单,然后阅读下面发布的解决方案
如您所见,有四个固定的容器,每个容器都包含一个可滚动的div,其中包含一个大型链接列表,位于父级中
重要提示上述代码仅包含HTML结构及其对应的CSS。JS一点也不含蓄,因此理解这不是JS问题很重要。这个问题由JS解决。您必须向滚动容器添加一个scroll
侦听器,并检查滚动是否变为0。如果它确实变为零,则将其设为1。通过这样做,您可以完全消除发生此问题的唯一情况
$('body .vweb-mobile-ul-wrapper .vweb-mobile-ul-parent').scroll(function(){
if ( $(this).scrollTop() == 0 ) {
$(this).scrollTop(1);
}
});
请注意当滚动容器到达底部时,同样的问题也会发生。如果等待几毫秒,向下滚动,然后立即向上滚动,滚动将再次被禁用。如上所述,解决方案是将滚动条移动1px。如果scrollTop值位于容器的底部,假设它的值是x
,那么您只需将其设置为$(this)代码> 这个问题由JS解决。您必须向滚动容器添加一个scroll
侦听器,并检查滚动是否变为0。如果它确实变为零,则将其设为1。通过这样做,您可以完全消除发生此问题的唯一情况
$('body .vweb-mobile-ul-wrapper .vweb-mobile-ul-parent').scroll(function(){
if ( $(this).scrollTop() == 0 ) {
$(this).scrollTop(1);
}
});
请注意当滚动容器到达底部时,同样的问题也会发生。如果等待几毫秒,向下滚动,然后立即向上滚动,滚动将再次被禁用。如上所述,解决方案是将滚动条移动1px。如果scrollTop值位于容器的底部,假设它的值是x
,那么您只需将其设置为$(this)代码> 请写下否决投票的理由。如果有什么不对劲,就说出来。请写下否决投票的理由。如果有什么不对劲,就说出来。