第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

原生js實(shí)現(xiàn)

怎么覺(jué)得老師寫(xiě)的原生js效果里面的addClass和removeClass并沒(méi)有實(shí)現(xiàn)呢

正在回答

2 回答

?function getByClassName(obj,cls){

? ? ? ? ? ? var elements=document.getElementsByTagName("*"); //把父元素下面所有的元素都獲取到

? ? ? ? ? ? var result=[];//返回的結(jié)果就是所有class=cla的數(shù)組

? ? ? ? ? ? for(var i=0;i<elements.length;i++){

? ? ? ? ? ? ? ? if(elements[i].className==cls){//如果有多個(gè)類(lèi)的話(huà),那么這個(gè)方法就不行了

? ? ? ? ? ? ? ? ? ? result.push(elements[i]);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? return result;

? ? ? ? }

? ? ? ? function hasClass(obj,cls){

? ? ? ? ? ? return obj.className.match(new RegExp("(\\s|^)"+cls+"(\\s|$)"));//判斷className里面是否包含我們傳入的cls值

? ? ? ? }

? ? ? ? function removeClass(obj,cls){

? ? ? ? ? ? if(hasClass(obj,cls)){

? ? ? ? ? ? ? ? //remove

? ? ? ? ? ? ? ? var reg=new RegExp("(\\s|^)"+cls+"(\\s|$)");

? ? ? ? ? ? ? ? obj.className=obj.className.replace(reg,"");//把包含這個(gè)class的字符串替換成空

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? function addClass(obj,cls){

? ? ? ? ? ? if(!hasClass(obj,cls)){

? ? ? ? ? ? ? ? obj.className+=" "+cls;

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? //頁(yè)面載入之后

? ? ? ? window.onload=function(){

? ? ? ? ? ? //監(jiān)聽(tīng)滾動(dòng)條事件

? ? ? ? ? ? window.onscroll=function(){

? ? ? ? ? ? ? ? //獲取滾動(dòng)條top值。

? ? ? ? ? ? ? ? var top=document.documentElement.scrollTop||document.body.scrollTop;

? ? ? ? ? ? ? ? var menus=document.getElementById("menu").getElementsByTagName("a");

? ? ? ? ? ? ? ? var items=getByClassName(document.getElementById("content"),"item");

? ? ? ? ? ? ? ? var currentId="";//獲取當(dāng)前滾動(dòng)條所在樓層的Id


? ? ? ? ? ? ? ? for(var i=0;i<items.length;i++){

? ? ? ? ? ? ? ? ? ? var _item=items[i];

? ? ? ? ? ? ? ? ? ? var _itemTop=_item.offsetTop;

? ? ? ? ? ? ? ? ? ? ?console.log(_item.offsetTop);

? ? ? ? ? ? ? ? ? ? if(top>_itemTop-200){

? ? ? ? ? ? ? ? ? ? ? ? currentId=_item.id;

? ? ? ? ? ? ? ? ? ? }else{

? ? ? ? ? ? ? ? ? ? ? ?break;//跳出for循環(huán)

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? if(currentId){

? ? ? ? ? ? ? ? ? ? //給正確的menu下的a元素class賦值。

? ? ? ? ? ? ? ? ? ? for(var j=0;j<menus.length;j++){

? ? ? ? ? ? ? ? ? ? ? ? var _menu=menus[j];//獲取當(dāng)前的menu

? ? ? ? ? ? ? ? ? ? ? ? var ?_href=_menu.href.split("#");

? ? ? ? ? ? ? ? ? ? ? ? if(_href[_href.length-1]!=currentId){

? ? ? ? ? ? ? ? ? ? ? ? ? ?removeClass(_menu,"current");

? ? ? ? ? ? ? ? ? ? ? ? }else{

? ? ? ? ? ? ? ? ? ? ? ? ? ?addClass(_menu,"current");

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }


0 回復(fù) 有任何疑惑可以回復(fù)我~

實(shí)現(xiàn)了,只是有些地方是有些問(wèn)題的,我這有代碼,給你發(fā)

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

原生js實(shí)現(xiàn)

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)