天天看點

鋒利的jQuery執行個體-圖檔滾動

效果看圖:

點選按鈕後的動畫思路倒很容易弄懂,主要就是開始的時候CSS的設定,如果想到程式動态生成的話,那必須得先圖檔清單的長度。。。

這裡隻列出JS的代碼:

鋒利的jQuery執行個體-圖檔滾動
鋒利的jQuery執行個體-圖檔滾動

Code

$(function() {

    var page = 1;  // 初始為第一版

    var i = 4;  // 每版顯示4個li

    // 下一版

    $("span.next").click(function() {

        var $parent = $(this).parents("div.v_show"); // 根據目前單擊的元素擷取父元素

        var $v_show = $parent.find("div.v_content_list"); // 根據父元素擷取展示區

        var $v_content = $parent.find("div.v_content"); // 根據父元素擷取展示區外圍的DIV

        var v_width = $v_content.width(); // 外圍DIV的寬度,即有overflow:hidden的那個DIV

        var len = $v_show.find("li").length; // 總的圖檔數

        var page_count = Math.ceil(len / i); // 擷取總版數

        if (!$v_show.is(":animated")) {  // 如果正處于動畫中的則不進行動畫

            if (page == page_count) {

                // 最後一版,動畫跳回第一版

                $v_show.animate({ left: "0px" }, 1000);

                page = 1;

            }

            else {

                // 跳到下一版

                $v_show.animate({ left: "-=" + v_width }, 1000);

                page++;

        }

        // 更改版數的樣式,高亮目前版數

        $(".highlight_tip").find("span").eq(page - 1).addClass("current").siblings().removeClass("current");

    });

    // 上一版

    $("span.prev").click(function() {

            if (page == 1) {

                // 第一個版面,動畫跳到最後一版

                $v_show.animate({ left: "-=" + v_width * (page_count - 1) }, 1000);

                page = page_count;

                $v_show.animate({ left: "+=" + v_width }, 1000);

                page--;

});

源碼下載下傳(同時包含我自己制作的示例和書中的示例):

<a target="_blank" href="http://niunan.net/download/jquery_scroll.7z">http://niunan.net/download/jquery_scroll.7z</a>

繼續閱讀