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

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何制作加強(qiáng)版Tab菜單欄(最好利用原生JavaScript)?

如何制作加強(qiáng)版Tab菜單欄(最好利用原生JavaScript)?

jeck貓 2018-12-29 19:14:12
制作Tab菜單欄(利用原生JavaScript)需求: 1.點(diǎn)擊哪個(gè)a鏈接,讓其對應(yīng)的li標(biāo)簽添加類(.current)需求: 2.鼠標(biāo)經(jīng)過哪個(gè)a鏈接,其對應(yīng)li標(biāo)簽的背景色變灰(.hover)需求1利用排他思想,此段代碼已寫好;需求2如果繼續(xù)使用排他思想,怎么讓所點(diǎn)擊的a鏈接排除在外?也就是如何獲取被點(diǎn)擊的a鏈接所對應(yīng)的位置,鼠標(biāo)經(jīng)過它不變色,兩者不沖突?或者還有更好的方法?代碼段:
查看完整描述

1 回答

?
PIPIONE

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊

需求1 排他思想 效率比較差。不管li有沒有類別都操作一遍。如果記住有類名的li,只刪除這個(gè)li的類別是不是效率更高?


    var ul = document.getElementById("list");

    var liArr = ul.querySelectorAll("li");

    var index = 0; //設(shè)置index記住有類名的li的下標(biāo) ,初始為 0

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

        liArr[i].index = i;  // 設(shè)置當(dāng)前點(diǎn)擊的li的 下標(biāo) 等于索引值

        liArr[i].onclick = function () {

            liArr[index].className = ""; //  li被點(diǎn)擊時(shí)候 移除類名為current的li的 類名

            this.className = "current"; // 給當(dāng)前點(diǎn)擊的li添加類名current

            index = this.index  //  li 類名為current的  下標(biāo) 就變成了 當(dāng)前點(diǎn)擊的li下標(biāo)

        }

    }

加強(qiáng)版:事件委托比for循環(huán)效率更高


    <script>

        window.onload = function () {

            var oMenu =document.getElementById("#menu");

            oMenu.onclick = function (e) {

                oCur= oMenu.querySelector(".current");

                if(oCur){oCur.className="";}

                e = e || window.event;

                var tag = e.target || e.srcElement;

                if(tag.nodeName.toLocaleLowerCase()=="a"){

                    tag.parentNode.className = "current"

                }

            };

        }

    </script>

需求2 鼠標(biāo)經(jīng)過請使用css實(shí)現(xiàn),樣式如下


      <style>

        #list li {

            list-style-type: none;

            width: 80px;

            height: 30px;

            line-height: 30px;

            background-color:beige;

            text-align: center;

            float: left;

            margin-left: 5px;

        }


        #list li.current,#list li.current:hover {

            background-color: burlywood;

        }


        #list li:hover {

            background-color: #CCC;

        }

        

        #list li a {

            display: block;

            text-decoration: none;

        }


    </style>


查看完整回答
反對 回復(fù) 2019-01-11
  • 1 回答
  • 0 關(guān)注
  • 462 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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