可滚动 div:如何从可滚动 div 的 OnScroll 事件检测滚动方向?

发布于 2024-08-30 04:56:08 字数 110 浏览 9 评论 0原文

如何从 OnScroll 事件检测可滚动 div 的滚动方向?如果用户向上滚动,我想向scrollTop 添加 15;如果用​​户向下滚动,我想向scrollTop 添加 15。不使用JQuery 可以吗?

How to detect the scroll direction for a scrollable div , From OnScroll event? I want to add 15 to scrollTop, if user scrolls up and subtract 15, if user scrolls down. Is it possible with out using JQuery?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

仄言 2024-09-06 04:56:08

JSFIDDLE

/**
 * Calculate incremental amounts of pixels scrolled in each axis.
 * Value is signed to its direction.
 */
function incrementalScroll(e) {

    var scrollX = (this.x || window.pageXOffset) - window.pageXOffset;
    var scrollY = (this.y || window.pageYOffset) - window.pageYOffset;

    this.x = window.pageXOffset;
    this.y = window.pageYOffset;

    test(scrollX, scrollY);
}

window.onscroll = incrementalScroll;

根据需要使用它。

function test(scrollX, scrollY){

    var directionX = !scrollX ? "NONE" : scrollX>0 ? "LEFT" : "RIGHT";
    var directionY = !scrollY ? "NONE" : scrollY>0 ? "UP" : "DOWN";

    console.log(directionX, scrollX, directionY, scrollY);
}

JSFIDDLE

/**
 * Calculate incremental amounts of pixels scrolled in each axis.
 * Value is signed to its direction.
 */
function incrementalScroll(e) {

    var scrollX = (this.x || window.pageXOffset) - window.pageXOffset;
    var scrollY = (this.y || window.pageYOffset) - window.pageYOffset;

    this.x = window.pageXOffset;
    this.y = window.pageYOffset;

    test(scrollX, scrollY);
}

window.onscroll = incrementalScroll;

Use it as you want.

function test(scrollX, scrollY){

    var directionX = !scrollX ? "NONE" : scrollX>0 ? "LEFT" : "RIGHT";
    var directionY = !scrollY ? "NONE" : scrollY>0 ? "UP" : "DOWN";

    console.log(directionX, scrollX, directionY, scrollY);
}
小红帽 2024-09-06 04:56:08

我能想到的最简单的方法如下。如果您可以将 let oldScroll 包装到一个闭包中以使其更清晰,那就太好了,但这不是必需的。

const scrollableEle = document.getElementById('scrollable-ele')
let oldScroll = scrollableEle.scrollTop

scrollableEle.addEventListener('scroll', doSomething)

function doSomething(e) {
  contentRight.scrollTop > oldScroll ? /* down */ : /* up */
  oldScroll = scrollableEle.scrollTop
}

The simplest way I can think of is the following. It would be nice if you could wrap let oldScroll into a closure to make it cleaner, but it's not necessary.

const scrollableEle = document.getElementById('scrollable-ele')
let oldScroll = scrollableEle.scrollTop

scrollableEle.addEventListener('scroll', doSomething)

function doSomething(e) {
  contentRight.scrollTop > oldScroll ? /* down */ : /* up */
  oldScroll = scrollableEle.scrollTop
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文