0
所以我創建了一個包含三個div的頁面,這些頁面在滾動時變得可見。問題是,該代碼使得它們均實行在同一時間,而我想他們應該是每個onscroll函數的代碼Javascript-在設置的超時後執行onscroll功能
有關部分的執行之間的時間差 -
HTML
<section id="section2">
<span id="one" class="classbefore">lol</span>
<span id="two" class="classbefore">lol</span>
<span id="three" class="classbefore">lol</span>
</section>
CSS
#section2 > span{
width: 25%;
height: 50%;
position: absolute;
background: #f00;
-webkit-transition: all 0.5s ease;
box-shadow: 1px #000;
}
#section2 > #one{
margin-left: 10%;
}
#section2 > #two{
margin-left: 37.5%;
}
#section2 > #three{
margin-left: 65%;
}
.classbefore{
opacity: 0;
margin-top: 18%;
}
.classafter{
opacity: 1;
margin-top: 20%;
}
的Javascript
window.addEventListener('scroll', function (event) {
if (window.scrollY > 600) {
document.getElementById('one').className = "classafter";
} else {
document.getElementById('one').className = "classbefore";
}
}, true);
window.addEventListener('scroll', function (event) {
if (window.scrollY > 600) {
document.getElementById('two').className = "classafter";
} else {
document.getElementById('two').className = "classbefore";
}
}, true);
window.addEventListener('scroll', function (event) {
if (window.scrollY > 600) {
document.getElementById('three').className = "classafter";
} else {
document.getElementById('three').className = "classbefore";
}
}, true);
所以,使用這個,所有的三個跨度在同一時間變得可見。請建議一種方法讓它們超時,以便一個函數在另一個函數之後執行。
此外,此代碼可以更有效嗎?
爲什麼你要爲窗口滾動定義三個單獨的事件? – hsh
根據你的代碼,如果'window.scrollY> 600'所有的span得到class'classafter',所以它們都是可見的同時.. –