JQuery使用及基礎原理解析相關筆記(一)

1.jquery

◆很強大,但是很臃腫,需要自己封裝一個jquery,要用到jqery中哪些方法,就把原來jquery中的方法拿出來。

◆jquery有兩大特點:鏈式編程、隱式迭代(遍歷)。


2.原生js的入口函數與jquery的入口函數

◆原生js的入口函數:

window.onload = function () {}

是頁面文檔和頁面資源都加載完畢之後開始執行函數裏面的代碼,

document.onready =function () {}

是頁面文檔加載完畢之後開始執行函數裏面的代碼(但是這個原生的js的入口函數是jquery腳本庫擴展出來的事件,只有在引入了jquery腳本庫的時候才能夠使用document.onready,沒有引入腳本庫的時候document對象是沒有這個事件的),document.onready 比 window.onload要快一點,因爲圖片資源還沒有顯示,document.onready裏的代碼就執行了,window.onload是頁面所有資源都加載完畢才執行的,window對象沒有onready。

◆jquery的入口函數:

$(document).ready(function () {});
$(function () {});
$(window).ready(function () {});
這三種方式都和document.onready一樣,都是頁面文檔加載完畢之後 就進入JQuery的入口函數開始執行函數裏面的代碼,

$(window).load(function () {});

這種方式和

window.οnlοad=function(){}

一樣,都是頁面文檔和頁面資源都加載完畢之後開始執行函數裏面的代碼。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JQuery的入口函數與原生js的入口函數</title>
    <script src="jquery-1.11.1.js"></script>
</head>
<body>
<script>


    //原生js的入口函數  :頁面文檔加載完畢之後,
    // 頁面需要加載的資源也加載完畢之後,就進入原生js的入口函數
    window.onload = function () {
        alert("原生js的入口函數  window.onload")

    }

    //window對象沒有onready事件  只有document對象有   ready要比load快
//    window.onready=function(){
//        alert("原生js的入口函數  window.onready")
//
//    }

    //原生js的入口函數  :頁面文檔加載完畢之後,就進入原生js的入口函數
    //效果與下面的$(document).ready(function(){});差不多   //但是這個document對象的事件是jquery腳本庫擴展出來的,
	 //所以在沒有引入jquery腳本庫時,
	 //document對象沒有這個事件
    document.onready = function () {
        alert("原生js的入口函數  document.onready")

    }

    //JQuery的入口函數 第一種方式 :頁面文檔加載完畢之後 就進入JQuery的入口函數
    $(document).ready(function () {
        alert("JQuery的入口函數 第一種方式 $(document).ready")
    });

    //JQuery的入口函數 第二種方式:頁面文檔加載完畢之後 就進入JQuery的入口函數
    $(function () {
        alert("JQuery的入口函數 第二種方式 $(function () ")
    });

    //JQuery的入口函數 第三種方式:頁面文檔加載完畢之後 就進入JQuery的入口函數
    $(window).ready(function () {
        alert("JQuery的入口函數 第三種方式 $(window).ready")

    })

    //這種jquery的入口函數 效果與window.onload差不多
    $(window).load(function () {
        alert("JQuery的入口函數 第四種方式 $(window).load")

    });

</script>
<img src="data:image/png;base64,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" alt="">
</body>
</html>


3.Query與$的區別:其實它們是一樣的,都是一個函數名,並且它們完全相等,jQuery===$。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JQuery與$的區別(其實他們是一樣的)</title>
    <script src="jquery-1.11.1.js"></script>
    <script>


        console.log(console);
        console.log($);//$其實是一個函數名
        console.log(jQuery);//jQuery其實是一個函數名
        console.log($===jQuery);//他們是用一個函數
    </script>
</head>
<body>
</body>
</html>


4.jQuery中的dom對象與原生js中的dom對象的區別

◆jQuery的dom對象是對js的dom對象的封裝
◆jQuery無論是通過什麼方式獲取的dom對象都是僞數組,僞數組中裝的成員就是原生js的dom對象。
◆不光是將原生js的dom對象封裝到數組中,並且還給這個數組增加了很多功能方法,也就是給原來的js的dom對象穿上了一層帶有功能的皮膚,雖然原生的js的dom對象也可以自己封裝這些功能方法,但是兼容性沒有jQuery的那麼好。
★模擬jQuery對象操作css樣式的功能方法

 Object.prototype.css = function (json) {
        var cssArr = [];
        for (var key in json) {
            cssArr.push(key + ":" + json[key]);
        }
        this.style.cssText = cssArr.join(";");
    }
    box.css({width: "200px", height: "200px", "background-color": "#f00"});

★jquery與js操作樣式的方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery與js操作樣式的方式</title>
    <script src="jquery-1.11.1.js"></script>
</head>
<body>
<div id="box1"></div>
<div id="box2"></div>


<script>
    var box1 = document.getElementById("box1");
    var box2 = $("#box2");
    //原生js一次性設置所有的樣式 可以使用 cssText屬性
    box1.style.cssText = "width:200px;height:200px;background-color:#0f0";
    //jquery一次性設置所有的樣式 可以使用css();
    box2.css({width: "200px", height: "200px", "background-color": "#f00"});

    //jquery獲取的dom對象是對js獲取的dom對象進行了封裝,
    // 給js的dom對象穿上了一層帶有功能的皮膚

    //    //自己給原生js封裝一下並且也穿上一層功能皮膚
    Object.prototype.css = function (json) {
        var cssArr = [];
        for (var key in json) {
            cssArr.push(key + ":" + json[key]);
        }
        this.style.cssText = cssArr.join(";");
    }
    box1.css({width: "200px", height: "200px", "background-color": "#f00"});

</script>
</body>
</html>

◆jQuery中的Dom對象與js中的Dom對象的區別和聯繫

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jQuery中的Dom對象與js中的Dom對象的區別和聯繫</title>
    <script src="jquery-1.11.1.js"></script>
</head>
<body>
<div id="box" class="cbox"></div>
<script>
    // js和jquery通過id獲取dom對象\\

    var box = document.getElementById("box");
    var jbox = $("#box");
    //<div id="box" class="cbox"></div>
    console.log(box);
    //jQuery.fn.init [div#box.cbox, context: document, selector: "#box"]
    console.log(jbox);


    console.log("-----------------------------------");

    // js和jquery通過class獲取dom對象\\
    var cbox = document.getElementsByClassName('cbox');
    var jcbox = $(".cbox");
    //HTMLCollection [div#box.cbox, box: div#box.cbox]
    console.log(cbox);
    //jQuery.fn.init [div#box.cbox, prevObject: jQuery.fn.init(1), context: document, selector: ".cbox"]
    console.log(jcbox);


    console.log("-----------------------------------");

    // js和jquery通過tagName獲取dom對象\\
    var div = document.getElementsByTagName("div");
    var jdiv = $('div');
    //HTMLCollection [div#box.cbox, box: div#box.cbox]
    console.log(div);
    //jQuery.fn.init [div#box.cbox, prevObject: jQuery.fn.init(1), context: document, selector: "div"]
    console.log(jdiv);




    console.log("-----------------------------------");

    //js通過id獲取的是一個dom對象  而jquery通過id獲取的是個數組,
    //js通過tagName與class獲取的是一個數組  jquery通過tagName與class獲取的也是一個數組
    //通過結構可以看出,jquery獲取的dom對象是對js獲取的dom對象進行了封裝。

</script>
</body>
</html>


5.原生的js的dom對象可以和jQuery的dom對象相互轉換

◆js的dom對象轉換爲jQuery的dom對象:$(js的dom對象)或jQuery(js的dom對象)。

◆jQuery的dom對象轉換爲js的dom對象:jQuery的dom對象[index]或jQuery的dom對象.get(index),就可以獲取jQuery的dom對象的僞數組中的一個dom對象,但是如果get方法中不寫索引就可以獲取jQuery的dom對象的僞數組中的所有的dom對象,jQuery的dom對象.get()獲取一個正常的原生js的dom對象的數組,不再是僞裝數組。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jQuery的dom對象與js的dom對象之間相互轉換</title>
    <script src="jquery-1.11.1.js"></script>
</head>
<body>
<div></div>
<div class="boxc"></div>
<div id="boxi"></div>
<div></div>
<div></div>
<script>

    //js的dom對象
    var boxtag = document.getElementsByTagName("div");
    var boxc = document.getElementsByClassName("boxc");
    var boxi = document.getElementById("boxi");

    //jquery的dom對象
    var jqboxtag = $("div");
    var jqboxc = $(".boxc");
    var jqboxi = $("#boxi");

    //使用jquery的dom對象 改變css樣式
    jqboxtag.css({width: 100, height: 100, border: "1px solid #0f0"});

    //將js 的dom對象 轉換爲jquery的dom對象
    boxi = $(boxi);
    //使用轉換爲jquery的dom對象 改變css樣式
//    boxi.css({"background-color": "#f00"});//可以傳json 設置多個屬性
    boxi.css("background-color", "#f00");//可以傳字符串 設置一個屬性

    //將jquery的dom對象 轉換爲js的dom對象
    jqboxc = jqboxc[0];
    jqboxc.style["background-color"] = "#ff0";

    console.log(jqboxtag);
    console.log(jqboxtag.get());
    //    再將jquery的dom對象 轉換爲js的dom對象
    jqboxi = jqboxi.get(0);//這個方法如果不傳參數 則會返回一個數組
    jqboxi.innerHTML = "將jquery的dom對象 轉換爲js的dom對象成功";

    //jquery的dom對象都是數組,將原生的js對象封裝到了一個數組中,
    // 所以你才能夠通過[]來獲取原生的js的dom對象,
    // get方法是給這個數組新增的,傳遞索引時就返回dom對象,
    // 不傳索引時就返回裝着dom對象的正常數組。

</script>
</body>
</html>


6.jQuery中的僞數組是怎麼實現的,清空原本數組中的原型(所有功能方法),添加自己新增的功能方法,添加索引爲字符串的成員context

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jQuery對象是這樣的僞數組</title>
</head>
<body>
<script>
    //模擬jquery的dom對象的封裝 ,jquery的dom對象就是這樣的僞數組
    var arr = [];
    arr[0] = 0;
    arr[1] = 1;
    arr[2] = 2;
    arr[3] = 3;
    arr[4] = 4;
    arr["5"] = 5;

    //js的數組[]裏面不光是索引 還可以是字符串
    arr["context"] = document;

        //清空數組的原型  沒有數組的方法了
        arr["__proto__"] = null;

    console.log(arr);//打印僞數組

    //這樣只能遍歷索引爲數字的   或者索引爲字符串的數字的
    for (var i = 0; i < arr.length; i++) {
        console.log(i + "   " + arr[i]);
    }

    //這樣既可以遍歷索引爲數字的也可以遍歷索引爲字符串的
    for (var key in arr) {
        console.log(key + "  " + arr[key]);
    }

</script>
</body>
</html>


7.簡單使用jQuery:隔行變色、頁面開關燈

◆隔行變色

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>使用jQuery進行隔行變色</title>
    <script src="jquery-1.11.1.js"></script>

    <script>
        $(document).ready(function () {
            var liArr = $("li");
            //因爲jquery的dom對象是僞數組 所以可以直接使用for循環
            for (var i = 0; i < liArr.length; i++) {
                if (i % 2 == 0) {
                    liArr.get(i).style.backgroundColor = "#f00";
                } else {
                    liArr[i].style.backgroundColor = "#0f0";
                }
            }
        });
    </script>
</head>
<body>
<ul>
    <li>使用jQuery進行隔行變色</li>
    <li>使用jQuery進行隔行變色</li>
    <li>使用jQuery進行隔行變色</li>
    <li>使用jQuery進行隔行變色</li>
    <li>使用jQuery進行隔行變色</li>
    <li>使用jQuery進行隔行變色</li>
    <li>使用jQuery進行隔行變色</li>
    <li>使用jQuery進行隔行變色</li>
    <li>使用jQuery進行隔行變色</li>
    <li>使用jQuery進行隔行變色</li>
</ul>
</body>
</html>

◆頁面開關燈

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>使用jQuery進行頁面開關燈</title>
    <style type="text/css">
        img {
            display: block;
            margin: 100px auto;
        }
    </style>
    <script src="jquery-1.11.1.js"></script>
    <script>

        $(document).ready(function () {
            var btns = document.getElementsByTagName("button");
            var body = $("body");

            $(btns[0]).click(function () {//開燈
                body[0].style.backgroundColor = "white";
            })
            $(btns[1]).click(function () {//關燈
                body.get(0).style.backgroundColor = "black";
            })
        });

    </script>
</head>
<body>
<button>開燈</button>
<button>關燈</button>
<img src="images/jQuery對象和DOM對象.png" width="500" alt="">
</body>
</html>

8.jQuery的基本選擇器:

◆無論什麼選擇器,返回的都是封裝着原生的dom對象的僞數組。

◆$(id選擇器),$(element選擇器),$(class選擇器),$(*通配符選擇器),$(選擇器1,選擇器2,選擇器3,選擇器4)....$(css選擇器),其實在css中使用的選擇器,都可以放到$()中作爲選擇器

$("li")
$(".li")
$("*")
$("li,.li,#li,*")
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>基本選擇器</title>
    <script src="jquery-1.11.1.js"></script>
</head>
<body>
<ul>
    <li></li>
    <li class="li"></li>
    <li id="li"></li>
    <li class="li"></li>
    <li></li>
</ul>
<script>
    //元素選擇器
    var element=$("li");
    element.css({width:"100px",height:"100px","margin-top":"5px","background-color":"#501"});

    //類選擇器
    var class1=$(".li");
    class1.css("background-color","#091");

    //id選擇器
    var id1=$("#li");
    id1.css({"border":"1px solid #009","background-color":"#ff0"});

    //*通配符選擇器
    var all0=$("*");

    //並集選擇器
    var bj=$("li,.li,#li,*");

</script>
</body>
</html>


9.jQuery的層級選擇器:

◆$(祖 子)後代選擇器,$(父>子)子代選擇器,$(前+緊接着的後)後兄弟選擇器,$(前~所有的後)後同輩選擇器,其實在css中使用的選擇器,都可以放到$()中作爲選擇器

$("ul li")
$("ul>li")
$("#prv+ol")
$("#prv~li")
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>層級選擇器</title>
    <script src="jquery-1.11.1.js"></script>
    <script>
        $(function () {
            //後代選擇器
            var li1 = $("ul li");
            li1.css({"background-color":"#0f0","margin":"5px"});

            //子代選擇器
            var li2 = $("ul>li");
            li2.css({"border":"1px solid #f00"});

            //後兄弟選擇器
            var next = $("#prv+ol");
            next.css("border","2px solid #00f");

            //後同輩選擇器
            var nextall = $("#prv~li");
            nextall.css("border","5px solid #000");
        });
    </script>
</head>
<body>
<ul>
    <li></li>
    <li></li>
    <li id="prv"></li>
    <ol>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ol>
    <li></li>
    <li></li>
</ul>
</body>
</html>


10.jQuery的基本過濾選擇器

◆在基本選擇器的基礎上進行過濾操作:如$("li:first");,找到所有li後直接找到第一個li。

:first過濾第一個、

:not(selector)過濾不包含selector的、

:even過濾索引爲偶數的、

:odd過濾索引爲奇數的、

:eq(index)過濾索引等於index的、

:gt(index)過濾索引大於index的、

:last過濾最後一個、

:lt(index)過濾索引小於index的、

:header過濾h1-h6、

:animated過濾正在執行動畫的、

:focus過濾已經獲取焦點。


11.jQuery的篩選選擇器

 ◆ 篩選過濾選擇器操作:如$("li").eq(0);和$("li:even").eq(0);,前者表示找到所有li後過濾第一個li,後者表示找到所有索引爲偶數的li後過濾第一個。

//    eq(index | -index) //等於索引的元素
//    first() //第一個元素
//    last() //最後一個元素
//    hasClass(class) //是否包含類
//    filter(expr | obj | ele | fn)
//    is(expr | obj | ele | fn)
//    map(callback)
//    has(expr | ele)
//    not(expr | ele | fn) 是否不包含
//    slice(start, [end])

    ◆篩選查找選擇器操作:如$("li").eq(0).next();或者$("li:first").next();,都是找到第一個li然後在此基礎上查找下一個。

//    children([expr]) //找子代
//    closest(e | o | e)1.7 *
//    find(e | o | e)//從jquery對象的後代中查找必須制定參數,如果不指定獲取不到元素
//    next([expr])//下一個
//    nextall([expr])//下面的全部
//    nextUntil([e | e][, f])
//    offsetParent() //帶有定位的父節點
//    parent([expr]) //父節點
//    parents([expr])
//    parentsUntil([e | e][, f])
//    prev([expr]) //上一個
//    prevall([expr]) //上面的全部
//    prevUntil([e | e][, f])
//    siblings([expr]) //所有兄弟 除了自己

 

12.使用JQuery的選擇器來DIY動畫效果:下拉菜單、隔行變色、高亮顯示戲曲牌、手風琴摺疊面板、服飾廣告

◆下拉菜單

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>使用jQuery的選擇器製作下拉菜單</title>
    <style type="text/css">

        * {
            margin: 0;
            padding: 0;
        }

        ul {
            list-style: none;
        }

        .wrap {
            width: 330px;
            height: 30px;
            margin: 100px auto 0;
            padding-left: 10px;
            background-image: url(images/bg.jpg);
        }

        .wrap li {
            background-image: url(images/libg.jpg);
        }

        .wrap > ul > li {
            float: left;
            margin-right: 10px;
            position: relative;
        }

        .wrap a {
            display: block;
            height: 30px;
            width: 100px;
            text-decoration: none;
            color: #000;
            line-height: 30px;
            text-align: center;
        }

        .wrap li ul {
            position: absolute;
            top: 30px;
            display: none;
        }

    </style>
    <script type="text/javascript" src="jquery-1.11.1.js"></script>
    <script>

        //需求:當移入到一級菜單時,顯示對應的二級菜單,移出時隱藏對應的二級菜單
        //思路:所有一級菜單的鼠標移入事件,
        // 然後show當前一級菜單下的ul,
        // 移出時hide當前一級菜單下的ul
        //步驟:
        //1.獲取事件源及相關元素對象
        //2.綁定事件
        //3.書寫事件驅動程序

        $(document).ready(function () {

            //1.獲取事件源及相關元素對象
            var wrap = $(".wrap");
            var liArr = wrap.children("ul").children("li");
//            console.log(wrap)
//            console.log(liArr)

            //2.綁定事件
            liArr.mouseenter(function () {
                $(this).children("ul").show();
            });
            liArr.mouseleave(function () {
                $(this).children("ul").hide();
            });


            //3.書寫事件驅動程序

        });


    </script>

</head>
<body>
<div class="wrap">
    <ul>
        <li>
            <a href="javascript:void(0);">一級菜單1</a>
            <ul>
                <li><a href="javascript:void(0);">二級菜單1</a></li>
                <li><a href="javascript:void(0);">二級菜單2</a></li>
                <li><a href="javascript:void(0);">二級菜單3</a></li>
            </ul>
        </li>
        <li>
            <a href="javascript:void(0);">一級菜單2</a>
            <ul>
                <li><a href="javascript:void(0);">二級菜單1</a></li>
                <li><a href="javascript:void(0);">二級菜單2</a></li>
                <li><a href="javascript:void(0);">二級菜單3</a></li>
            </ul>
        </li>
        <li>
            <a href="javascript:void(0);">一級菜單3</a>
            <ul>
                <li><a href="javascript:void(0);">二級菜單1</a></li>
                <li><a href="javascript:void(0);">二級菜單2</a></li>
                <li><a href="javascript:void(0);">二級菜單3</a></li>
            </ul>
        </li>
    </ul>
</div>
</body>
</html>

◆隔行變色

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>使用jQuery的選擇器製作-隔行變色</title>
</head>
<body>
<ul>
    <li>使用jQuery的選擇器製作-隔行變色</li>
    <li>使用jQuery的選擇器製作-隔行變色</li>
    <li>使用jQuery的選擇器製作-隔行變色</li>
    <li>使用jQuery的選擇器製作-隔行變色</li>
    <li>使用jQuery的選擇器製作-隔行變色</li>
</ul>
<script src="jquery-1.11.1.js"></script>
<script>

    //需求:
    // 首先 讓ul中的li 索引爲偶數就變綠,索引爲奇數就變紅,
    // 然後讓鼠標移入時顏色變藍,移除就恢復原樣
    //思路:
    //使用:even和:odd基本過濾器來找到對應的li改變其顏色
    //設置li的鼠標移入事件和移出事件,並且設置一個計數器
    //鼠標移入時記錄顏色,鼠標移出時把記錄的顏色賦值回去
    //步驟:
    //獲取事件源及相關元素對象
    //綁定事件
    //書寫事件驅動程序

    //獲取事件源及相關元素對象
    var evenLi = $("li:even");//偶數索引的li
    var oddLi = $("li:odd");//奇數索引的li
    var allLi = $("li");//全部li

    //設置隔行變色
    evenLi.css("background", "#0f0");
    oddLi.css("background", "#f00");

    //綁定事件
    var color = "";
    allLi.mouseenter(function () {
        color = $(this).css("background");
        $(this).css("background", "#00f");
    });
    allLi.mouseleave(function () {
        $(this).css("background", color);
    });


    //書寫事件驅動程序


</script>
</body>
</html>

◆高亮顯示戲曲牌

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>使用jQuery的選擇器製作-高亮顯示戲曲牌</title>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }

        ul {
            list-style: none;
        }

        body {
            background: #000;
        }

        .wrap {
            margin: 100px auto 0;
            width: 630px;
            height: 394px;
            padding: 10px 0 0 10px;
            background: #000;
            overflow: hidden;
            border: 1px solid #fff;
        }

        .wrap li {
            float: left;
            margin: 0 10px 10px 0;

        }

        .wrap img {
            display: block;
            border: 0;
        }
    </style>
    <script src="jquery-1.11.1.js"></script>
    <script>

        //防止圖片加載不出來
        $(window).load(function () {
            //需求:首先讓所有圖片透明度變爲0.4,當鼠標移入到某一張圖片上時透明度變爲1.0
            //思路:改變透明度而已,設置opacity屬性即可
            //步驟:
            //1.獲取事件源及相關元素對象
            //2.綁定事件
            //3.書寫事件驅動程序

            //1.獲取事件源及相關元素對象
            var liArr = $(".wrap>ul>li");
            liArr.css("opacity", "0.4");
            //2.綁定事件
            liArr.mouseenter(function () {
                $(this).css("opacity", "1.0");

            });
            liArr.mouseleave(function () {
                $(this).css("opacity", "0.4");

            });

            //3.書寫事件驅動程序


        });

    </script>
</head>
<body>
<div class="wrap">
    <ul>
        <li><a href="#"><img src="images/01.jpg" alt=""/></a></li>
        <li><a href="#"><img src="images/02.jpg" alt=""/></a></li>
        <li><a href="#"><img src="images/03.jpg" alt=""/></a></li>
        <li><a href="#"><img src="images/04.jpg" alt=""/></a></li>
        <li><a href="#"><img src="images/05.jpg" alt=""/></a></li>
        <li><a href="#"><img src="images/06.jpg" alt=""/></a></li>
    </ul>
</div>
</body>
</html>

◆手風琴摺疊面板

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>使用jQuery的選擇器製作-手風琴摺疊面板</title>
    <style type="text/css">
        * {
            padding: 0;
            margin: 0;
        }

        ul {
            list-style-type: none;
        }

        .parentWrap {
            width: 200px;
            text-align: center;

        }

        .menuGroup {
            border: 1px solid #999;
            background-color: #e0ecff;
        }

        .groupTitle {
            display: block;
            height: 20px;
            line-height: 20px;
            font-size: 16px;
            border-bottom: 1px solid #ccc;
            cursor: pointer;
        }

        .menuGroup > div {
            height: 200px;
            background-color: #fff;
            display: none;
        }

    </style>
    <script src="jquery-1.11.1.js"></script>
    <script>

        $(function () {

            //需求:當點擊手風琴的某個面板的標題時,
            // 展開當前面板中的內容
            // 隱藏其它面板中的內容
            //思路:設置每一個標題的單擊事件
            //      當點擊時讓內容的顯示
            //      讓其它面板的內容隱藏
            //步驟:
            //1.獲取事件源及相關元素對象
            //2.綁定事件
            //3.書寫事件驅動程序

            //1.獲取事件源及相關元素對象
            var span = $(".parentWrap>.menuGroup>.groupTitle");

            //2.綁定事件
            span.click(function () {
                //鏈式書寫,顯示自己 隱藏其它
                $(this).next("div").show().parent("li").siblings("li").children("div").hide();
            });

            //3.書寫事件驅動程序


        });

    </script>
</head>
<body>
<ul class="parentWrap">
    <li class="menuGroup">
        <span class="groupTitle">標題1</span>
        <div>我是彈出來的div1</div>
    </li>
    <li class="menuGroup">
        <span class="groupTitle">標題2</span>
        <div>我是彈出來的div2</div>
    </li>
    <li class="menuGroup">
        <span class="groupTitle">標題3</span>
        <div>我是彈出來的div3</div>
    </li>
    <li class="menuGroup">
        <span class="groupTitle">標題4</span>
        <div>我是彈出來的div4</div>
    </li>
</ul>
</body>

◆服飾廣告

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>使用jQuery的選擇器製作-淘寶精品服飾廣告</title>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
            font-size: 12px;
        }

        ul {
            list-style: none;
        }

        a {
            text-decoration: none;
        }

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

        #left, #center, #right {
            float: left;
        }

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

        #left li a, #right 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, #right li a:hover {
            background-image: url(images/abg.gif);
        }

        #center {
            border-left: 1px solid pink;
            border-right: 1px solid pink;
        }
    </style>
    <script src="jquery-1.11.1.js"></script>
    <script>

        $(function () {

            //需求:當鼠標移入到對應的欄目時顯示對應的商品
            //思路:先給左邊的欄目設置鼠標移入事件  對應的li索引展示對應的商品
            //      再給右邊的欄目設置鼠標移入事件  在對應的索引上加9
            //步驟:
            //1.獲取事件源及相關元素對象
            //2.綁定事件
            //3.書寫事件驅動程序

            //1.獲取事件源及相關元素對象
            var liLeft = $("#left>li");
            var liRight = $("#right>li");
            var liCenter = $("#center>li");

            //2.綁定事件
            liLeft.mouseenter(function () {
                liCenter.eq($(this).index()).show().siblings().hide();
            });


            liRight.mouseenter(function () {
                console.log(liCenter.eq($(this).index() + 9));
                liCenter.eq($(this).index() + 9).show().siblings().hide();
            });

            //3.書寫事件驅動程序


        })

    </script>
</head>
<body>
<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>
    <ul id="center">
        <li><a href="#"><img src="images/女靴.jpg" width="200" height="250"/></a></li>
        <li><a href="#"><img src="images/雪地靴.jpg" width="200" height="250"/></a></li>
        <li><a href="#"><img src="images/冬裙.jpg" width="200" height="250"/></a></li>
        <li><a href="#"><img src="images/呢大衣.jpg" width="200" height="250"/></a></li>
        <li><a href="#"><img src="images/毛衣.jpg" width="200" height="250"/></a></li>
        <li><a href="#"><img src="images/棉服.jpg" width="200" height="250"/></a></li>
        <li><a href="#"><img src="images/女褲.jpg" width="200" height="250"/></a></li>
        <li><a href="#"><img src="images/羽絨服.jpg" width="200" height="250"/></a></li>
        <li><a href="#"><img src="images/牛仔褲.jpg" width="200" height="250"/></a></li>
        <li><a href="#"><img src="images/女包.jpg" width="200" height="250"/></a></li>
        <li><a href="#"><img src="images/男包.jpg" width="200" height="250"/></a></li>
        <li><a href="#"><img src="images/登山鞋.jpg" width="200" height="250"/></a></li>
        <li><a href="#"><img src="images/皮帶.jpg" width="200" height="250"/></a></li>
        <li><a href="#"><img src="images/圍巾.jpg" width="200" height="250"/></a></li>
        <li><a href="#"><img src="images/皮衣.jpg" width="200" height="250"/></a></li>
        <li><a href="#"><img src="images/男毛衣.jpg" width="200" height="250"/></a></li>
        <li><a href="#"><img src="images/男棉服.jpg" width="200" height="250"/></a></li>
        <li><a href="#"><img src="images/男靴.jpg" width="200" height="250"/></a></li>
    </ul>
    <ul id="right">
        <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>
</body>
</html>


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