2
我正在製作完整的JavaScript菜單。無法爲所選的顏色着色<a>標記
我試圖根據用戶的offsetTop改變<li>
或<a>
項目的顏色。問我這是不是可以理解的。
菜單
var menu = document.getElementById('header');
var work = document.getElementById('work');
var who = document.getElementById('who');
var contact = document.getElementById('contact');
var offsetWork = work.offsetTop - 60;
var offsetWho = who.offsetTop - 60;
var offsetContact = contact.offsetTop - 60;
var ul = document.getElementsByTagName('ul')[0];
var li = ul.getElementsByTagName('li');
setInterval(function(){
var ul = document.getElementsByTagName('ul')[0];
var li = ul.getElementsByTagName('li');
if(getCurrPos() >= offsetWork){
menu.style.display = "block";
}else if(getCurrPos() <= offsetWork){
menu.style.display = "none";
}
if(offsetWork <= getCurrPos() <= offsetWho){
li[1].style.backgroundColor = '#00a9c6';
//li[1].getElementsByTagName('a').style.color = '#fff';
}else {
li[1].style.backgroundColor = '#fff';
}
if(offsetWho <= getCurrPos() <= offsetContact){
li[2].style.backgroundColor = '#00a9c6';
//li[2].getElementsByTagName('a').style.color = '#fff';
}else {
li[2].style.backgroundColor = '#fff';
}
if(getCurrPos() >= offsetContact){
li[3].style.backgroundColor = '#00a9c6';
//li[3].getElementsByTagName('a').style.color = '#fff';
}else {
li[3].style.backgroundColor = '#fff';
}
}, 100);
所有註釋行不工作,我不知道爲什麼,因爲它是在做李當發現[A]項[1] .getElementsByTagName(「A」) ;
謝謝你的幫助,
Maël。
嘗試更換'.getElementsByTagName( 'A')style.color = '#FFF';與''.getElementsByTagName( 'a')的[0] .style.color ='#fff ';'記住'getElementsByTagName('a')'返回一個NodeList對象,表示一個錨元素的集合。 – NewToJS
可能的重複[什麼做querySelectorAll,getElementsByClassName和其他getElementsBy \ *方法返回?](http://stackoverflow.com/questions/10693845/what-do-queryselectorall-getelementsbyclassname-and-other-getelementsby-method) – ValLeNain
謝謝很多NewToJS,我用它上李但不上了,我的壞啊! –