gpt4 book ai didi

javascript将事件处理程序绑定(bind)到水平滚动

转载 作者:可可西里 更新时间:2023-11-01 02:20:36 24 4
gpt4 key购买 nike

在 javascript 中有没有一种方法可以将事件处理程序绑定(bind)到水平滚动,而不是在用户水平和垂直滚动时触发的通用滚动事件?我只想在用户水平滚动时触发事件。

我四处寻找这个问题的答案,但似乎找不到任何东西。

谢谢!

附言如果我错误地使用了某些术语,我深表歉意。我是 javascript 的新手。

更新

非常感谢您的所有回答!总而言之,你们似乎都在说 javascript 不支持这一点,但我认为我可以用这样的东西(使用 jQuery)来完成功能 (jsFiddle) :

var oldScrollTop = $(window).scrollTop();

$(window).bind('scroll', function () {
if (oldScrollTop == $(window).scrollTop())
//scrolled horizontally
else {
//scrolled vertically
oldScrollTop = $(window).scrollTop();
}
});​

这就是我需要知道的全部。再次感谢!

最佳答案

我正在用手机接听,因此目前无法提供代码。

您需要做的是订阅滚动事件。没有特定的垂直/水平。

接下来,您需要获取有关当前显示区域的一些测量值。您需要测量 window.clientHeight 和 window.clientWidth。

接下来,获取 window.top 和 window.left。这将告诉您视口(viewport)的位置,即如果它大于 0,则使用了滚动条。

从这里得到您需要的东西是非常简单的数学运算。如果在接下来的几个小时内没有其他人提供代码示例,我将尝试这样做。

编辑:更多信息。

您必须捕获滚动事件。您还需要将初始 window.top 和 window.left 属性存储在某处。每当滚动事件发生时,做一个简单的检查以查看当前的顶部/左侧值是否与商店值不同。

此时,如果两者不同,您可以触发自己的自定义事件来指示垂直或水平滚动。如果您使用的是 jQuery,这很容易。如果您在没有库帮助的情况下编写 js,这也很容易,但会涉及更多。

在 js 中搜索事件调度。

然后您可以编写您想要订阅自定义事件的任何其他代码,而无需将它们与方法调用联系在一起。

关于javascript将事件处理程序绑定(bind)到水平滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11729859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com