我正在使用代码在滚动时将div粘贴在顶部,并且div到达顶部。
代码工作正常,但是导航到另一页时出现错误。
TypeError: Cannot read property 'offsetParent' of null
我的密码
render() {
var startProductBarPos = -1;
window.onscroll = function () {
var bar = document.getElementById('nav');
if (startProductBarPos < 0) startProductBarPos = findPosY(bar);
if (window.pageYOffset > startProductBarPos) {
bar.style.position = 'fixed';
bar.style.width = '58.6%'
bar.style.top = 0;
} else {
bar.style.position = 'relative';
bar.style.width = '100%'
}
};
function findPosY(obj) {
var curtop = 0;
if (typeof (obj.offsetParent) != 'undefined' && obj.offsetParent) {
while (obj.offsetParent) {
curtop += obj.offsetTop;
obj = obj.offsetParent;
}
curtop += obj.offsetTop;
} else if (obj.y)
curtop += obj.y;
return curtop;
};
return(
<div className="trait_type_header" id="nav">
</div>
);
}
这行代码显示错误所在。
if (typeof (obj.offsetParent) != 'undefined' && obj.offsetParent) {
我认为导航到另一页时
obj
为空。如果是这种情况,我该如何解决? 最佳答案
尝试改变
if (typeof (obj.offsetParent) != 'undefined' && obj.offsetParent)
至
if (obj && obj.offsetParent)