javascript - 检查 scrollTo 是否完成

标签 javascript angularjs

我有一个可滚动的元素。我还有一个滚动到特定位置的功能。我想在 scrollTo 完成时调用一个函数。

Plunkr example

var x = document.querySelector('.container');
$scope.scrollTo = function() {
  x.scrollTo({
    top: 300 ,
    behavior: 'smooth'
  });
};

 // do something when scrollTo is finished

最佳答案

通过检查我要滚动到的元素的位置并将其与容器的当前滚动位置进行比较,您可以看到滚动操作何时完成。

function isScrollToFinished() {
        const checkIfScrollToIsFinished = setInterval(() => {
            if (positionOfItem === scrollContainer.scrollTop) {
                // do something
                clearInterval(checkIfScrollToIsFinished);
            }
        }, 25);
}

间隔检查滚动容器的位置是否等于我要滚动到的元素的位置。然后做一个 Action ,清除间隔。

关于javascript - 检查 scrollTo 是否完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51927295/

相关文章:

javascript - 用JavaScript替换html字符串

javascript - 用PIXI画线,用TweenMax移动

javascript - 当我尝试在 Visual Studio Code 的终端中使用 Node.js 时,收到 “document is not defined” 错误消息

javascript - 使用 EVOPdf、WebAPI 和 AngularJS 生成 PDF

javascript - 对过滤器索引使用react更新状态

javascript - youtube.playlistItems.insert(..) 花费大量配额

javascript - 如何使用 Protractor 搜索类、在类中查找 p 标签并验证其某些文本?

html - 内部运行时 css 干扰页面默认 CSS

angularjs - 当 http 请求正在进行时如何获取我的 Controller 的数据?

angularjs - 将 Angular Material 与 twitter bootstrap 相结合而不会发生冲突