【发布时间】:2020-09-10 17:55:56
【问题描述】:
我的网站上有一个 100% 高度 x 100% 宽度的固定主容器,我想在其中检测滚动事件。页面结构可以描述为一个滑块,其中固定的活动幻灯片和非活动幻灯片绝对位于主容器下方。当我有一个寻呼机时,我让它工作得很好。问题是,我还希望用户能够仅使用鼠标滚动在幻灯片之间切换(向下滚动时转到下一张幻灯片,然后向下滚动显示上一张幻灯片,同时向上滚动)。有什么办法可以做到,保持我的页面结构不变?小提琴可以在这里找到:http://jsfiddle.net/tts4nhun/1/(这只是一个快速的娱乐,我认为在 css 中有些东西是不必要的,但就这个问题的内容而言,它们并没有真正改变任何东西)。
HTML:
<div class="wrapper">
<div class="slide slide-1"></div>
<div class="slide slide-2"></div>
</div>
CSS:
.wrapper {
position:absolute;
background:red;
width:100%;
height:100%;
top:0;
left:0;
overflow:hidden;
}
.slide {
width:100%;
height:100%;
-webkit-transition: all 0.5s ease-in-out;
-moz-transition: all 0.5s ease-in-out;
-ms-transition: all 0.5s ease-in-out;
-o-transition: all 0.5s ease-in-out;
transition: all 0.5s ease-in-out;
}
.slide-1 {
position:fixed;
top:0;
left:0;
background:blue;
}
.slide-2 {
position:absolute;
top:100%;
left:0;
background:green;
}
.slide-2.active {
position:fixed;
top:0;
left:0;
}
jQuery :
$('.slide-1').click(function(){
$('.slide-2').addClass('active');
});
我问的不是检查用户是向下滚动还是向上滚动,而是他们是否确实这样做了。
如果您有任何建议,我将不胜感激。 谢谢, E.
e:为了澄清,我希望禁用滚动本身(用户不应该能够以传统方式向下滚动网站)。我想检测滚动事件的原因是,我想在一次向下或向上滚动时交换活动类。 (这也是我想要保留 overflow:hidden 属性的原因 - 我希望网站类似于幻灯片,并像向上/向下箭头一样使用向上/向下滚动事件)。
【问题讨论】:
-
请澄清您的问题!
-
我知道的唯一方法是让您的页面可滚动,但所有元素都已修复。所以说
body { height: 500%; }和#body > container { position: fixed; }然后检测 onscroll 并在某些点触发.. -
我的错。现在更新了。