//定義getByClassName函數(shù),讓函數(shù)實(shí)現(xiàn)根據(jù)class?name獲取對象并返回
function?getClassName(obj,cls){
????var?elements=obj.getElementsByTagName("*");
????var?result=[];
????for(var?i=0;i<elements.length;i++){
????????result.push(elements[i]);
????}
????return?result;
}
function?hasClass(?obj,?cls?){?
????return?obj.className.match(new?RegExp("(\\s|^)"?+?cls?+?"(\\s|$)"));
}
function?removeClass(?obj,?cls?){?
????if(?hasClass(?obj,?cls?)){?
????//remove
var?reg?=?new?RegExp("(\\s|^)"?+?cls?+?"(\\s|$)");
obj.className?=?obj.className.replace(reg,?"");
}
}
????//定義getByClassName函數(shù),讓函數(shù)實(shí)現(xiàn)給對象增加class?
????function?addClass(obj,cls){
????????if(!hasClass(obj,cls)){
????????????obj.className+="?"+cls;
????????}
????}
window.onload?=?function(){?
????window.onscroll?=?function(){?
????var?top?=?document.documentElement.scrollTop?||?document.body.scrollTop;
var?menus?=?document.getElementById("menu").getElementsByTagName("a");
var?items?=?getByClassName(document.getElementById("content"),?"item");
var?currentId?=?"";
for?(?var?i=0;?i<?items.length;?i++?){?
????var?_item?=?items[i];
????var?_itemTop?=?_item.offsetTop;
if(?top?>?_itemTop?-?200?){?
????currentId?=?_item.id;
}?else?{?
????break;
}
}
?
??????//請補(bǔ)充此處代碼,給正確的menu下的a元素class賦值current
??????if(currentId){
??????????for(var?j=0;j<menus.length;j++){
??????????????var?_menu=menus[j];
??????????????var?_href=_menu.href.split("#");
??????????????if(_href[_href.length-1]!=currentId){
??????????????????removeClass(_menu,"current");
??????????????}else{
??????????????????addClass(_menu."current");
??????????????}
??????????}
??????}
??????
}
}
2017-10-20
第一段的那個沒有判斷
function getByClassName(obj, cls) {
? ? ? ? ? ? var result = [],
? ? ? ? ? ? ? ? eles = null;
? ? ? ? ? ??
? ? ? ? ? ? if(!obj) obj = document;
? ? ? ? ? ? if(obj.getElementsByClassName) {
? ? ? ? ? ? ? ? result = obj.getElementsByClassName(cls);
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? eles = obj.getElementsByTagName("*");
? ? ? ? ? ? ? ? for(var i=0; i<eles.length; i++) {
? ? ? ? ? ? ? ? ? ? if(eles[i].className.indexOf(cls) != -1){
? ? ? ? ? ? ? ? ? ? ? ? result.push(eles[i]);
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? return result;
? ? ? ? }
最后的那個addclass應(yīng)該是逗號
addClass(_menu,"current");