jQuery中的排他思想 —— 實現淘寶精品服飾選項卡效果

排他思想用大白話說就是多選一,只選中被選中的那個,其他的不選中。用原生js實現排他,需要循環遍歷,比較麻煩。jQuery裏有隱式迭代,就不需要我們再去循環綁定事件循環遍歷元素了,簡單了許多。

首先了解jQuery的三個方法,隱藏元素、顯示元素以及獲取元素索引號。

hide()  隱藏元素

show()  顯示元素

index()  返回元素索引號

ok,先來個簡單的排他案例唄,依然是選擇按鈕的案例。同樣的效果,代碼量減少了很多。

jQuery代碼:

       // 排他
        $(function () {
            // 對按鈕添加事件 這裏是隱式迭代:爲每個按鈕綁定了點擊事件
            $("button").click(function () {
                // 點擊變色
                // 排除除了當前被點擊的其他按鈕:就是被點擊按鈕的兄弟元素
                $(this).siblings().css("background", "");
                // 留下自己
                $(this).css("background", "pink");
            })
        })

這裏需要注意的是,幹掉其他人,就是選中被點擊按鈕的其他兄弟元素,設置他們的背景色爲空,再讓自己變色。排他在jQuery裏就三行代碼,是不是爽到飛起。哈哈哈哈哈。jQuery裏的鼠標事件與原生JavaScript事件名稱是一樣的,正常寫就好了。

 

淘寶案例

下面就來淘寶選項卡了哈。當鼠標移入不同的選項時,右側顯示不同的圖片來對應。先看下效果圖

主要的思想就是排他,還用到了對象元素的顯示和隱藏。left是左側的小選項可卡,content是右側的圖片部分

jQuery代碼:

     $(function () {
            // 鼠標經過li時 顯示對應的圖片
            $("#left li").mouseenter(function () {
                // 獲得經過li的索引號
                var index = $(this).index();
                console.log(index);
                // 讓選中的index圖片顯示 其他隱藏
                $("#content div").eq(index).show();
                $("#content div").eq(index).siblings().hide();
            })
        })

 

結構和樣式

<style type="text/css">
        * {
            margin: 0;
            padding: 0;
            font-size: 12px;
        }

        ul {
            list-style: none;
        }

        a {
            text-decoration: none;
        }

        .wrapper {
            width: 250px;
            height: 248px;
            margin: 100px auto 0;
            border: 1px solid pink;
            border-right: 0;
            overflow: hidden;
        }

        #left,
        #content {
            float: left;
        }

        #left li {
            background: url(images/lili.jpg) repeat-x;
        }

        #left li a {
            display: block;
            width: 48px;
            height: 27px;
            border-bottom: 1px solid pink;
            line-height: 27px;
            text-align: center;
            color: black;
        }

        #left li a:hover {
            background-image: url(images/abg.gif);
        }

        #content {
            border-left: 1px solid pink;
            border-right: 1px solid pink;
        }
    </style>



    <div class="wrapper">
        <ul id="left">
            <li><a href="#">女靴</a></li>
            <li><a href="#">雪地靴</a></li>
            <li><a href="#">冬裙</a></li>
            <li><a href="#">呢大衣</a></li>
            <li><a href="#">毛衣</a></li>
            <li><a href="#">棉服</a></li>
            <li><a href="#">女褲</a></li>
            <li><a href="#">羽絨服</a></li>
            <li><a href="#">牛仔褲</a></li>
        </ul>
        <div id="content">
            <div>
                <a href="#"><img src="images/女靴.jpg" width="200" height="250"></a>
            </div>
            <div>
                <a href="#"><img src="images/雪地靴.jpg" width="200" height="250"></a>
            </div>
            <div>
                <a href="#"><img src="images/冬裙.jpg" width="200" height="250"></a>
            </div>
            <div>
                <a href="#"><img src="images/呢大衣.jpg" width="200" height="250"></a>
            </div>
            <div>
                <a href="#"><img src="images/毛衣.jpg" width="200" height="250"></a>
            </div>
            <div>
                <a href="#"><img src="images/棉服.jpg" width="200" height="250"></a>
            </div>
            <div>
                <a href="#"><img src="images/女褲.jpg" width="200" height="250"></a>
            </div>
            <div>
                <a href="#"><img src="images/羽絨服.jpg" width="200" height="250"></a>
            </div>
            <div>
                <a href="#"><img src="images/牛仔褲.jpg" width="200" height="250"></a>
            </div>
        </div>
    </div>

 

 

最近懈怠了,沒有之前學習時間長了,但是還是在保持着學習進度的。加油加油加油!!!!!

學習不迷路。。。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章