溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

刷新頁面后怎樣讓hover樣式停留不消失

發(fā)布時(shí)間:2020-07-05 17:30:15 來源:網(wǎng)絡(luò) 閱讀:1605 作者:ismili 欄目:web開發(fā)

一、網(wǎng)站導(dǎo)航欄

  我們所熟知的網(wǎng)站導(dǎo)航欄,無非就是網(wǎng)站標(biāo)題以橫、縱向方式排列,用戶點(diǎn)擊以后進(jìn)入相應(yīng)的頁面來展示網(wǎng)站內(nèi)容,達(dá)到傳達(dá)信息的目的。

  刷新頁面后怎樣讓hover樣式停留不消失

  用戶點(diǎn)擊進(jìn)入一個(gè)頁面,如果在刷新后此導(dǎo)航欄有文字有相應(yīng)的顏色、背景變化,那么將會(huì)有一個(gè)很好的用戶體驗(yàn),此時(shí)就涉及到CSS的hover樣式、jQuery的觸發(fā)事件了。


二、hover樣式

       鼠標(biāo)掃過文字時(shí),文字的背景、顏色變化,這樣做很簡(jiǎn)單:

       a:hover{},一句話就可以搞定;但如果要點(diǎn)擊刷新后仍然存在鼠標(biāo)刷新的樣式,就有點(diǎn)上層次了。

刷新頁面后怎樣讓hover樣式停留不消失

       具體問題具體分析:

       1、根據(jù)使用的不同框架來定

       2、CMS自己封裝了相應(yīng)的方法

       3、導(dǎo)航欄單獨(dú)做成頭部文件,利用ajax無刷新技術(shù)得以實(shí)現(xiàn)頭部無刷新,只變化內(nèi)容區(qū)域就更簡(jiǎn)單點(diǎn)

       4、導(dǎo)航欄每個(gè)按鈕都有固定的、以ID結(jié)尾的鏈接(以DEDE為例)

                 /plus/list.php?tid=1、

    /plus/list.php?tid=2、

    /plus/list.php?tid=3、

    /plus/list.php?tid=4


三、簡(jiǎn)單實(shí)現(xiàn)步驟

       下面就講第四種情況的實(shí)現(xiàn)方法(其它3種因?yàn)楸救四芰τ邢?,待以后繼續(xù)更新)

        HTML :很簡(jiǎn)單的導(dǎo)航條代碼

    <ul>    
        <li><a href="/plus/list.php?tid=1"></a></li>
        <li><a href="/plus/list.php?tid=2"></a></li>
        <li><a href="/plus/list.php?tid=3"></a></li>
        <li><a href="/plus/list.php?tid=4"></a></li>
        <li><a href="/plus/list.php?tid=5"></a></li>
    </ul>

         jQuery: hover方法、each方法判斷是當(dāng)前頁面第一個(gè)a標(biāo)簽對(duì)象的href屬性

    $(function(){    
        $("ul>li").hover(function(){
            $(this).children("a").addClass("");
        },function(){
            $(this).children("a").removeClass("");
            
            $("ul>li>a").each(function(){
                $this = $(this);
                if ($this[0].href == String(window.location)){
                    $this.addClass("");
                }
            });
        });
        $("ul>li>a").each(function(){
            $this = $(this);
            if ($this[0].href == String(window.location)){
                $this.addClass("");
            }
        });
    });

       因?yàn)橛卸鄠€(gè)a標(biāo)簽,所以要遍歷當(dāng)前頁面所在第一個(gè)a標(biāo)簽對(duì)象,獲取它的href屬性,來與所在頁面鏈接做對(duì)比,如果符合就添加對(duì)應(yīng)的hover css樣式;但問題來了,樣式已經(jīng)添加,鼠標(biāo)經(jīng)過此文字離開時(shí)又移除了該屬性,我們?cè)俅螌⑾旅孢@條語句復(fù)制進(jìn)hover移除后的句子后面,再次強(qiáng)制添加該屬性,就成功解決了!


四、遺留問題、改進(jìn)方向

       1、 /plus/list.php?tid=1,該導(dǎo)航按鈕此時(shí)有了我們需要的樣式,但如果點(diǎn)擊此導(dǎo)航頁面下面的子鏈接,頁面變成了子鏈接所在的頁面,但還屬于此導(dǎo)航欄目的子欄目,此時(shí)的導(dǎo)航按鈕就失去了樣式。

       2、利用jQuery實(shí)現(xiàn)瀏覽器兼容性更加好,css3等新技術(shù)可以對(duì)自己的個(gè)人網(wǎng)站做實(shí)驗(yàn)。

       3、能讓子欄目智能識(shí)別父欄目才是解決問題的最好辦法。



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI