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

Plunkr example

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

 // do something when scrollTo is finished

最佳答案

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

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

间隔检查滚动容器的位置是否等于要滚动到的元素的位置。然后执行一个操作并清除间隔。

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

10-16 10:47