当元素位于窗口顶部400像素以内时,使用jQuery函数
jQuery function when elements are within 400 pixels of the top of the window
我目前有以下,但我卡住了。如有任何提示,不胜感激
- 从div (.examples)中获取所有数据位置值
- 当其中一个距离顶部400像素时执行魔术,每次其中一个距离顶部400像素时执行魔术
在我当前的设置中,它说"contentPosition。"Offset"不是函数
$(window).scroll(function () {
var contentPosition = [];
$('.examples').each(function () { //Get elements that have an id=
contentPosition.push($(this).data('position')); //add id to array
});
var top = contentPosition.offset().top - $(document).scrollTop();
if (top > 400) {
console.log('COMBO BREAKER');
}
});
你的嵌套是出来的,你也需要使用$(this)而不是contentposition数组作为对象来测试。(我在这里假设你想要COMBO BREAKER在对象距离顶部400像素或更小的时候出现)
看到这个工作小提琴(更新):https://jsfiddle.net/sijpkes/brjpt501/4/
$(window).scroll(function () {
var contentPosition = [];
$('.examples').each(function () { //Get elements that have an id=
contentPosition.push($(this).data('position')); //add id to array
var top = $(this).offset().top - $(document).scrollTop();
if (top < 400) {
console.log('COMBO BREAKER');
}
});
});
contentPosition
是一个元素数组。您可能需要使用:
contentPosition[i].offset().top
其中,i
是循环的迭代器。
所以,如果你想对它们中的每一个做点什么,你需要:
for (i = 0; i < contentPosition.length; i++) {
var top = contentPosition[i].offset().top - $(document).scrollTop();
if (top > 400) {
console.log('COMBO BREAKER');
}
}
contentPosition是一个数组,对吗?那么循环遍历它并检查位置:
for(var i = 0; i < contentPosition.length; i++){
var top = contentPosition[i].offset().top - $(document).scrollTop();
if (top > 400) {
console.log('COMBO BREAKER');
}
}
相关文章:
- 为什么不'我们在javascript中使用函数参数的数据类型
- 避免在if condition-Javascript中使用函数
- 使用函数索引到数组中
- 使用函数更改Javascript变量
- Javascript不能在一个命令中使用函数参数
- 使用函数JavaScript中的函数
- 我们可以在javascript中使用函数作为返回语句吗
- Javascript-如何使用函数找到数组的最小值
- Javascript-是否可以使用函数进行循环
- 如何在使用函数document.write()打印最终结果后,使用Javascript滚动到页面顶部
- 如何在另一个函数中使用函数变量值
- 使用函数for循环遍历对象以更改值,然后返回结果
- 如何使用函数来确定 Javascript 数组中是否存在值
- 使用函数按钮调用 ajaxform
- 如何在 JavaScript 中使用函数作为变量
- 使用函数“sort”对javascript数组进行排序
- 在同一工厂中的函数中使用函数并传递$scope(AngularJS)
- 我可以通过使用函数绑定来保留默认值吗?如果没有,为什么
- 在另一个函数中使用函数中的变量
- 对使用函数构造函数创建的函数的内部引用