我試圖在從頂部向下滾動時向標題應用不同的樣式。基本上我希望它,如果你在頂部滾動然後應用樣式1,但如果你沒有在頂部滾動然後應用樣式2.從頂部滾動之後更改元素樣式
我試過使用一段時間和for循環來實現這一點,但兩者失敗。下面的jQuery示例確實有效,但由於某種原因,不適用於此示例。不過,自從我學習JavaScript以來,我寧願使用JavaScript而不是jQuery。
有人可以告訴我我應該使用什麼:一段時間或if語句?有人能告訴我我的嘗試做錯了什麼嗎?
感謝您的任何幫助。
// ATTEMPT 1
var headerWrap = document.getElementById('header-wrap');
var h = headerWrap.scrollTop;
function changeHeaderOpacity() {
"use strict"; // wtf is this?
while (h > 0) {
headerWrap.addClass('scroll-opacity-change');
}
headerWrap.removeClass('scroll-opacity-change');
}
// ATTEMPT 2
/*
var headerWrap = $('#header-wrap');
$(window).scroll(function() {
headerWrap.addClass('scroll-opacity-change');
if($(this).scrollTop() <= 0) {
headerWrap.removeClass('scroll-opacity-change');
}
});
*/
/*
// ATTEMPT 3
var headerWrap = document.getElementById('header-wrap');
var h = headerWrap.scrollTop;
function changeHeaderOpacity() {
"use strict"; // wtf is this?
if (h > 0) {
headerWrap.addClass('scroll-opacity-change');
} else {
headerWrap.removeClass('scroll-opacity-change');
}
}
*/
body{
height:1000px;
}
#header-wrap{
height:100px;
width:100%;
background:#0f0;
}
.scroll-opacity-change{
background:#f00;
}
<div id="header-wrap">
</div>
jQuery的例子沒有爲你的榜樣工作,因爲[CSS特異性(的https://developer.mozilla.org/en-US/docs /網絡/ CSS /特異性)。即使將'.scroll-opacity-change'類添加到元素,'#header-wrap'中的背景也會始終獲勝。 – IronGeek