Javascript 使用overflow-y在div中按优先级滚动:在窗口上滚动
我正在使用html5、css和javascript开发一个移动应用程序,该应用程序使用并排滚动,并且由于webkit溢出滚动的一些问题:touch与我正在使用的div中的固定元素交互Javascript 使用overflow-y在div中按优先级滚动:在窗口上滚动,javascript,css,html,Javascript,Css,Html,我正在使用html5、css和javascript开发一个移动应用程序,该应用程序使用并排滚动,并且由于webkit溢出滚动的一些问题:touch与我正在使用的div中的固定元素交互 .scroller { position: fixed; overflow-x: hidden; overflow-y: scroll; -webkit-overflow-scrolling: touch; height: 100%; } 对于我的css,在左侧滚动,只需使
.scroller {
position: fixed;
overflow-x: hidden;
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
height: 100%;
}
对于我的css,在左侧滚动,只需使用窗口进行右侧滚动
当滚动到左侧的顶部或底部时,或者如果右侧仍在移动设备上滚动,则将使用该窗口而不是具有scroller类的左侧
我想知道是否有类似于z-index的东西,允许固定元素在滚动或单击时总是优先排序,而不是转到外部元素
在浏览器中出现这种情况的一个例子是滚动到固定元素的底部,然后外部元素滚动,即使您仍在固定元素的内部滚动
我想滚动只滚动固定元素,而不改变任何外部元素,而不检查它是否在固定元素底部的顶部
下面是我目前如何设置它的一把小提琴:
这里有一个小提琴,我希望互动看起来像,但不能有一个溢出-y:滚动右侧滚动滚动。
我更喜欢css的解决方案,但如果有某种方法可以在javascript中实现这一点,那将是可以接受的。我不确定这是否是您的意思,但这里有一个Jquery方法,介绍如何在
.scroller
div不在其自身滚动的底部时防止窗口向下滚动
var prevVal = $(window).scrollTop();
$(window).on("scroll", function(event) {
var elem = $(".scroller");
if($(window).scrollTop() > prevVal) {
if (elem[0].scrollHeight - elem.scrollTop() != elem.outerHeight()) {
$(window).scrollTop(prevVal);
}
}
prevVal = $(window).scrollTop();
});
这是一把小提琴:
编辑
根据需要设置条件的逻辑。您可以执行的验证包括:
-表示正在尝试向下滚动主窗口if($(window).scrollTop()>prevVal)
-表示正在尝试向上滚动主窗口if($(window.scrollTop()
-表示内容被滚动到自己的底部if(elem[0].scrollHeight-elem.scrollTop()==elem.outerHeight())
-表示内容被滚动到自己的顶部if(elem.scrollTop()==0)
$(窗口).scrollTop(prevVal)代码>-指示窗口不滚动