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

來源:互聯網
上載者:User
效果看圖:

點擊按鈕後的動畫思路倒很容易弄懂,主要就是開始的時候CSS的設定,如果想到程式動態產生的話,那必須得先圖片列表的長度。。。

這裡只列出JS的代碼:

 

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() {
        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 == 1) {
                // 第一個版面,動畫跳到最後一版
                $v_show.animate({ left: "-=" + v_width * (page_count - 1) }, 1000);
                page = page_count;
            }
            else {
                // 跳到下一版
                $v_show.animate({ left: "+=" + v_width }, 1000);
                page--;
            }
        }
        // 更改版數的樣式,高亮最新分支數
        $(".highlight_tip").find("span").eq(page - 1).addClass("current").siblings().removeClass("current");
    });
});

源碼下載(同時包含我自己製作的樣本和書中的樣本):
http://niunan.net/download/jquery_scroll.7z

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.