1 回答
TA贡献1865条经验 获得超7个赞
你打错了一个ID,就是这样。
在var cloudTwo = document.getElementById('SecondMovingCloud');,SecondMovingCloud应该是secondMovingCloud。
Javascript、CSS 和 HTML 区分大小写。
不确定 JSFiddle 是否显示 JS 错误,但是当我将所有内容复制到 Codepen 时,它显示了错误Uncaught TypeError: Cannot read property 'className' of null。这意味着document.getElementById()返回 null,这导致我拼写错误。只是分享一些关于如何调试的想法。
刚刚注意到您还忘记在几个地方更改变量名称。您可能编写过一次并复制了它,但忘记更改变量名。这是更正的版本。
var lastTopFirstCloud;
var lastTopSecondCloud;
window.addEventListener('scroll', function(event) {
var cloudOne = document.getElementById('firstMovingCloud');
var cloudTwo = document.getElementById('secondMovingCloud');
var firstCloudTop = cloudOne.getBoundingClientRect().top;
var secondCloudTop = cloudTwo.getBoundingClientRect().top;
if (cloudOne.className.indexOf('moving') === -1 && firstCloudTop < lastTopFirstCloud) {
cloudOne.classList.add('moving');
}
lastTopFirstCloud = firstCloudTop;
if (cloudTwo.className.indexOf('movingTwo') === -1 && secondCloudTop < lastTopSecondCloud) {
cloudTwo.classList.add('movingTwo');
}
lastTopSecondCloud = secondCloudTop;
});
此外,您确实应该为此使用数组,而不是两次编写代码。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
添加回答
举报
