Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 固定父项时,CSS移动菜单平滑滚动临时禁用_Javascript_Jquery_Css_Scroll_Css Position - Fatal编程技术网

Javascript 固定父项时,CSS移动菜单平滑滚动临时禁用

Javascript 固定父项时,CSS移动菜单平滑滚动临时禁用,javascript,jquery,css,scroll,css-position,Javascript,Jquery,Css,Scroll,Css Position,在移动电话上,如果您位于可滚动容器(位于固定容器内)的顶部,并且“错误地”向上滚动而不是向下滚动,滚动被临时禁用 我认为这是CSS属性-webkit溢出滚动时出现的反弹效应的结果:touch被添加到可滚动的容器中。此CSS属性的目的是在移动浏览器上启用平滑滚动 我把这个问题贴在这里是因为我想分享我的解决方案,这样其他人就不会花时间想出解决方案了。不幸的是,我还没有找到解决这个问题的问题 请查看下面的移动菜单,然后阅读下面发布的解决方案 如您所见,有四个固定的容器,每个容器都包含一个可滚动的d

在移动电话上,如果您位于可滚动容器(位于固定容器内)的顶部,并且“错误地”向上滚动而不是向下滚动,滚动被临时禁用

我认为这是CSS属性
-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)

请写下否决投票的理由。如果有什么不对劲,就说出来。请写下否决投票的理由。如果有什么不对劲,就说出来。