因此,当我的滚动位置与我想要设置动画的元素的位置相同时,我会触发动画。滚动到某个位置后,我刷新页面并收到错误消息,即我想要设置动画的元素未定义。这是我用于动画的代码:
angular.element($window).bind("scroll", function() {
var element = $element.find(".pr-bemax-bodyOfBagger");
if (this.pageYOffset >= element.offset().top - 400) {
var myEl = $element.find("#bulldozer-hand");
myEl[0].classList.add('bulldozer-hand');
}
});
附注我不想使用 $timeout。
最佳答案
如果您调用的集合为空,offset
将返回 undefined
,但要防止这一事实:
angular.element($window).bind("scroll", function() {
var element = $element.find(".pr-bemax-bodyOfBagger");
var offset = element.offset(); // <===
if (offset && this.pageYOffset >= offset.top - 400) {
// ^^^^^^^^^^ ^^^^^^
var myEl = $element.find("#bulldozer-hand");
myEl[0].classList.add('bulldozer-hand');
}
});
关于javascript - 有没有可能的方法来获取滚动位置并且不会出现元素未定义的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47753851/