jQuery 制作無(wú)縫輪播的焦點(diǎn)圖

網(wǎng)站上經(jīng)常見(jiàn)到焦點(diǎn)圖動(dòng)畫(huà),焦點(diǎn)圖的動(dòng)畫(huà)有多種,如:淡入淡出型、上下滑動(dòng)型、左右滑動(dòng)型、左右滑動(dòng)無(wú)縫型,對(duì)比用戶體驗(yàn)的話,無(wú)縫輪播方式是最好的,因?yàn)樵诓シ哦鄰垐D片的情況下不會(huì)出現(xiàn)間斷感。

核心概念

  • JavaScript 函數(shù)
  • setInterval 定時(shí)器
  • jQuery 的 animate 動(dòng)畫(huà)
  • jQuery 的 mouseover 及 click 事件
  • 無(wú)縫概念的理解

代碼

html

<div class="banner">
    <ul class="img">
        <li><a href="#"><img src="images/1.jpg" alt=""></a></li>
        <li><a href="#"><img src="images/2.jpg" alt=""></a></li>
        <li><a href="#"><img src="images/3.jpg" alt=""></a></li>
        <li><a href="#"><img src="images/4.jpg" alt=""></a></li>
    </ul>
    <ul class="num"></ul>
    <div class="btn btn_l"><</div>
    <div class="btn btn_r">></div>
</div>

js

$(function () {
    var i = 0;
    var clone = $(".banner .img li").first().clone();
    $(".banner .img").append(clone);
    var size = $(".banner .img li").size();
    for (var j = 0; j < size - 1; j++) {
        $(".banner .num").append("<li></li>");
    }
    $(".banner .num li").first().addClass("on");
    /*  鼠標(biāo)劃入圓點(diǎn) */
    $(".banner .num li").hover(function () {
        var index = $(this).index();
        i = index;
        $(".banner .img").stop().animate({left: -index * 550}, 500)
        $(this).addClass('on').siblings().removeClass('on');
    })
    /* 自動(dòng)輪播 */
    var t = setInterval(function () {
        i++;
        move()
    }, 2000);
    /* 對(duì)banner定時(shí)器的操作 */
    $(".banner").hover(function () {
        clearInterval(t);
    }, function () {
        t = setInterval(function () {
            i++;
            move();
        }, 2000);
    })
    /* 向左的按鈕 */
    $(".banner .btn_l").click(function () {
        i++;
        move();
    })
    /* 向右的按鈕 */
    $(".banner .btn_r").click(function () {
        i--;
        move();
    })
    function move() {
        if (i == size) {
            $(".banner .img").css({left: 0});
            i = 1;
        }
        if (i == -1) {
            $(".banner .img").css({left: -(size - 1) * 550});
            i = size - 2;   // size - 1 易錯(cuò)
        }
        $(".banner .img").stop().animate({left: -550 * i}, 500);
        if (i == size - 1) {
            $(".banner .num li").eq(0).addClass('on').siblings().removeClass('on');
        } else {
            $(".banner .num li").eq(i).addClass('on').siblings().removeClass('on');
        }
    }
})

css

* {
    padding: 0;
    margin: 0;
    list-style-type: none;
}
.banner {
    margin: 100px auto;
    border: 5px solid #000;
    width: 550px;
    height: 300px;
    overflow: hidden;
    position: relative;
}
.banner .img {
    width: 5000px;
    position: absolute;
    top: 0;
    left: 0;
}
.banner .img li {
    float: left;
}
.banner .num {
    position: absolute;
    width: 100%;
    bottom: 10px;
    left: 0;
    text-align: center;
    font-size: 0;
}
.banner .num li {
    width: 10px;
    height: 10px;
    background: #888;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    border-radius: 50%;
    display: inline-block;
    margin: 0 3px;
    cursor: pointer;
}
.banner .num li.on {
    background: #F60;
}
.banner .btn {
    width: 30px;
    height: 50px;
    background: rgba(0, 0, 0, 0.5);
    position: absolute;
    top: 50%;
    margin-top: -25px;
    cursor: pointer;
    text-align: center;
    line-height: 50px;
    color: #fff;
    font-size: 40px;
    font-family:"宋體";   /* 設(shè)置箭頭樣式: FireFox默認(rèn)黑體;Chrome默認(rèn)宋體;*/
    display: none;
}
.banner:hover .btn {
    display: block;
}
.banner .btn_l {
    left: 0;
}
.banner .btn_r {
    right: 0;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 通過(guò)jQuery,您可以選取(查詢,query)HTML元素,并對(duì)它們執(zhí)行“操作”(actions)。 jQuer...
    枇杷樹(shù)8824閱讀 669評(píng)論 0 3
  • 原文鏈接 http://blog.poetries.top/2016/10/20/review-jQuery 關(guān)注...
    前端進(jìn)階之旅閱讀 16,673評(píng)論 18 503
  • 第一章 事件篇 鼠標(biāo)事件 1. click與dbclick事件 click(): 監(jiān)聽(tīng)用戶的單機(jī)操作 dbclic...
    七弦桐語(yǔ)閱讀 479評(píng)論 0 2
  • 1.JQuery 基礎(chǔ) 改變web開(kāi)發(fā)人員創(chuàng)造搞交互性界面的方式。設(shè)計(jì)者無(wú)需花費(fèi)時(shí)間糾纏JS復(fù)雜的高級(jí)特性。 1....
    LaBaby_閱讀 1,367評(píng)論 0 2
  • 1.JQuery 基礎(chǔ) 改變web開(kāi)發(fā)人員創(chuàng)造搞交互性界面的方式。設(shè)計(jì)者無(wú)需花費(fèi)時(shí)間糾纏JS復(fù)雜的高級(jí)特性。 1....
    LaBaby_閱讀 1,199評(píng)論 0 1