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

1、網站導航欄php

  咱們所熟知的網站導航欄,無非就是網站標題以橫、縱向方式排列,用戶點擊之後進入相應的頁面來展現網站內容,達到傳達信息的目的。
css

  wKiom1XHasqh-qAeAAClC8c3WlM780.jpg

  用戶點擊進入一個頁面,若是在刷新後此導航欄有文字有相應的顏色、背景變化,那麼將會有一個很好的用戶體驗,此時就涉及到CSS的hover樣式、jQuery的觸發事件了。html


2、hover樣式css3

       鼠標掃過文字時,文字的背景、顏色變化,這樣作很簡單:ajax

       a:hover{},一句話就能夠搞定;但若是要點擊刷新後仍然存在鼠標刷新的樣式,就有點上層次了。瀏覽器

wKioL1XHcAfjpHBJAAC1t9tZ_NA385.jpg

       具體問題具體分析:框架

       一、根據使用的不一樣框架來定ide

       二、CMS本身封裝了相應的方法網站

       三、導航欄單獨作成頭部文件,利用ajax無刷新技術得以實現頭部無刷新,只變化內容區域就更簡單點this

       四、導航欄每一個按鈕都有固定的、以ID結尾的連接(以DEDE爲例)

                 /plus/list.php?tid=一、

    /plus/list.php?tid=二、

    /plus/list.php?tid=三、

    /plus/list.php?tid=4


3、簡單實現步驟

       下面就講第四種狀況的實現方法(其它3種由於本人能力有限,待之後繼續更新)

        HTML :很簡單的導航條代碼

    <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方法判斷是當前頁面第一個a標籤對象的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("");
            }
        });
    });

       由於有多個a標籤,因此要遍歷當前頁面所在第一個a標籤對象,獲取它的href屬性,來與所在頁面連接作對比,若是符合就添加對應的hover css樣式;但問題來了,樣式已經添加,鼠標通過此文字離開時又移除了該屬性,咱們再次將下面這條語句複製進hover移除後的句子後面,再次強制添加該屬性,就成功解決了!


4、遺留問題、改進方向

       一、 /plus/list.php?tid=1,該導航按鈕此時有了咱們須要的樣式,但若是點擊此導航頁面下面的子連接,頁面變成了子連接所在的頁面,但還屬於此導航欄目的子欄目,此時的導航按鈕就失去了樣式。

       二、利用jQuery實現瀏覽器兼容性更加好,css3等新技術能夠對本身的我的網站作實驗。

       三、能讓子欄目智能識別父欄目纔是解決問題的最好辦法。

相關文章
相關標籤/搜索