未捕获的类型错误:无法读取未定义的属性“top”
Uncaught TypeError: Cannot read property 'top' of undefined
我正在尝试根据元素到达页面顶部的时间添加类(标题为 -180px),但我似乎无法让偏移量顶部值起作用。
我使用窗口加载,因为图像的大小有助于决定每个部分的高度。您可以在此处查看一个实时示例 http://www.amypreston.co.uk/
$(window).load(function() {
var $header = $("header");
var numberOfSections = $("section").length;
var sectionOffsets = [];
for(var i = 0; i < numberOfSections + 1; i++) {
sectionOffsets.push($('section').eq(i).offset().top);
}
$(window).scroll(function() {
var scrollTop = $(this).scrollTop();
for(var i = 0; i < numberOfSections + 1; i++) {
if(scrollTop > sectionOffsets[i] - 180) {
$header.removeClass().addClass("project" + (i + 1));
}
}
});
});
你应该从语句中删除+ 1
for(var i = 0; i < numberOfSections + 1; i++) {
它应该是
for(var i = 0; i < numberOfSections; i++) {
删除+1
使用此代码
for(var i = 0; i < numberOfSections; i++) {
sectionOffsets.push($('section').eq(i).offset().top);
}
相关文章:
- TypeError:无法读取属性'推'未定义的JavaScript
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 未捕获的类型错误:无法读取属性'删除'的未定义
- AngularJS指令出错-无法读取属性'编译'的未定义
- 看到“;未捕获的类型错误:无法读取属性'weight'未定义的“;尽管按照字面上的指示
- angularjs无法读取未定义的属性then
- 无法读取属性'材料'未定义的Three.js
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- JavaScript承诺-无法读取属性'那么'的未定义
- 未捕获的类型错误:无法读取属性'中止'的未定义
- 角度推入数组给出:TypeError:无法读取属性'推'的未定义
- Javascript未捕获类型错误:无法读取属性'0'的未定义
- jQuery控制台错误:无法读取属性'top'的未定义
- TypeError:无法读取属性'findAll'的未定义
- 无法读取属性'errcap'未定义的jqgrid
- 无法读取未定义的属性“rid”
- 未捕获的类型错误: 无法读取未定义的属性“图像”
- 可以't读取'getHTML'未定义的Liferay CK Editor内容
- 在node.js中未定义读取属性错误