感谢您查看我的问题。我有一个位置固定的导航栏和一个ul。当nav的offset()。top大于每个li的offset()。top时,我想单独为每个li应用一个类。当用户向下滚动页面时,每个li应该1)显示,2)给出一个类,以便它在页面上的动画。
var nav = $('#nav').offset().top;
[].forEach.call(document.getElementsByClassName('portfolio_pieces'), (function(piece){
console.log(piece);
if (piece.offset().top < nav) {
$(piece).show().addClass("rollIn");
}
}));
我试图用forEach循环来完成这个任务;但是,控制台告诉我piece.offset不是一个函数。每件作品都代表着一个与班级&#39; portfolio_pieces&#39;。有没有其他方法可以实现这一目标,还是我错过了任何不允许偏移量来处理这些li元素的东西?
非常感谢您阅读,如果您有任何想法请分享!
答案 0 :(得分:0)
如果要使用jQuery offset method,则应将其应用于jQuery元素。在你的情况下:
$(piece).offset().top
如果您想坚持使用纯Javascript,请检查offsetTop property:
piece.offsetTop
说明:您使用了Javascript&#39; getElementByClassName方法,其中包含:
返回具有全部子元素的所有子元素的类数组对象 给定的类名
因此你不能将jQuery方法应用于其中任何一个。