如果用户在没有滚动条的情况下使用滚轮滚动,则触发

Trigger if user scrolls with scroll wheel when no scrollbar is present

本文关键字:滚动 用户 滚动条 情况下 如果      更新时间:2023-09-26

所以,我正在尝试创建一些独特的、使用绝对定位的东西。与overflow:hidden;一起,这个网站不会包含滚动条,但我仍然需要测试用户何时使用滚轮。


尝试

这是我的问题的代码段。

document.getElementById("main").onscroll=function(){
  console.log("scrolled");
  document.getElementById("scrolled").innerHTML="true";
}
#main {
  width:100px;
  height:100px;
  border:1px solid #000;
  overflow:hidden;
}
.object {
  width:100%;
  height:75%;
    background:rgba(0,0,0,0.1);
}
<div id="main">
    <div class="object"></div>
    <div class="object"></div>
    <div class="object">Can't see me.</div>
</div>
(The objects inside are expanding, it's just hidden)<br>
Try scrolling (with scroll wheel) in the div, then look below.<br>
Scroll triggered: <span id="scrolled">false</span>

正如你所看到的,没有滚动被触发,那是因为没有滚动条!从本质上讲,我仍然想知道滚轮是在使用,我也想知道它是在向上还是向下使用。

我的目标是什么

基本上,我想在我的网站后面创建这种"动态滚动"类型的框架。因此,容器是overflow:hidden,但当滚轮被触发时(向上或向下),它会增加或减少一个变量,该变量在JavaScript中设置为top:(variable)

所以总的来说,我只想要一些能检测滚轮是否被使用的东西,这样我就可以完成我的动态滚动脚本。

我知道的事情(所以你不应该向我提及)

我知道有些人的滚轮坏了,甚至没有。在你提到它之前,我的解决方案是在每张幻灯片的底部(或顶部)放上按钮,然后向下或向上滚动。

其他

解决方案应该是纯javascript,这意味着没有库!很抱歉让你经历了这场斗争,但这正是我所需要的。我唯一会接受的是,如果脚本太长,而库使其变短。否则,没有编号

仅此而已

感谢您通读,祝您好运,找到解决方案!我也会努力寻找解决方案。如果我发现任何信息,或者需要一些不同的东西,我会更新这篇文章,让你知道。

欢迎在评论中提问。

您可以尝试在车轮事件中逐渐设置位置。每次滚动鼠标滚轮时都会触发此事件。事件属性deltaX、deltaY、deltaZ包含给定方向上的偏移大小。

代码段http://jsfiddle.net/07516utp/显示了对此事件的滚动增量的感知。

document.addEventListener('wheel', onWheel);
function onWheel(event) {
    document.querySelector('#log').innerHTML = 'event: dx=' + event.deltaX + ' dy=' + event.deltaY + ' dz=' + event.deltaZ;
}