基于Jquery实现的轮播图

前阵子我用js写了一个轮播图,现在的话换成jQuery来实现,先看看效果图

首先是html结构,如下:

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8" />
        <title>jquery版图片轮播</title>
        <link rel="stylesheet" href="css/index.css" />
    </head>

    <body>
        <div class="container">
            <div class="inner clearfix">
                <div class="innerwraper"><img src="img/1.jpg" alt="" /></div>
                <div class="innerwraper"><img src="img/2.jpg" alt="" /></div>
                <div class="innerwraper"><img src="img/3.jpg" alt="" /></div>
                <div class="innerwraper"><img src="img/4.jpg" alt="" /></div>
                <div class="innerwraper"><img src="img/5.jpg" alt="" /></div>
                <div class="innerwraper"><img src="img/6.jpg" alt="" /></div>
                <div class="innerwraper"><img src="img/7.jpg" alt="" /></div>
                <div class="innerwraper"><img src="img/8.jpg" alt="" /></div>
                <div class="innerwraper"><img src="img/1.jpg" alt="" /></div>
            </div>
            <div class="pagination">
                <span class="active">1</span>
                <span>2</span>
                <span>3</span>
                <span>4</span>
                <span>5</span>
                <span>6</span>
                <span>7</span>
                <span>8</span>
            </div>
            <a href="javascript:void(0)" class="left-arrow">&lt;</a>
            <a href="javascript:void(0)" class="right-arrow">&gt;</a>
        </div>
        <script src="js/jquery-1.11.3.min.js"></script>
        <script src="js/new.js"></script>
    </body>

</html>

关于css的相关设置:

.container {
    margin: 20px auto;
    width: 510px;
    overflow: hidden;
    position: relative;
}
.inner {
    position: relative;
    width: 9999px;
    left: 0;
    top: 0;
}
.innerwraper {
    float: left;
}
.clearfix {
    *zoom: 1;
}
.clearfix:after {
    display: block;
    clear: both;
    visibility: hidden;
    content: "";
    height: 0;
}
a {
    text-decoration: none;
}
.left-arrow {
    position: absolute;
    left: 0;
    top: 40%;
    width: 10%;
    height: 20px;
    text-align: center;
    line-height: 20px;
    font-size: 20px;
}
.right-arrow {
    position: absolute;
    right: 0;
    top: 40%;
    width: 10%;
    height: 20px;
    font-size: 20px;
    text-align: center;
    line-height: 20px;
}
.pagination{
    position: absolute;
    bottom: 10px;
    width: 100%;
    text-align: center;
}
.pagination span{
    display: inline-block;
    width: 30px;
    height: 30px;
    background-color: yellow;
    line-height: 30px;
    border-radius: 50%;
    cursor: pointer;
}
.pagination .active{
    background-color: red;
    color: #FFFFFF;
}

我是用的jquery版本是jquery-1.11.3.min.js,这里就不提供了,各位童鞋自己去下载哈

js源代码:

var innerGroup = $(".innerwraper");
var leftArrow = $(".left-arrow");
var rightArrow = $(".right-arrow");
var spanGroup = $(".pagination span");
var imgWidth = $(".innerwraper img:first-child").eq(0).width();
var _index = 0;
var timer = null;
var flag = true;
rightArrow.on("click", function() {
    //右箭头
    flag = false;
    clearInterval(timer);
    _index++;
    selectPic(_index);
})
leftArrow.on("click", function() {
    //左箭头
    flag = false;
    clearInterval(timer);
    if (_index == 0) {
        _index = innerGroup.length - 1;
        $(".inner").css("left", -(innerGroup.length - 1) * imgWidth);
    }
    _index--;
    selectPic(_index);
})
spanGroup.on("click", function() {
    //导航切换
    _index = spanGroup.index($(this));
    selectPic(_index);
})

$(".container").hover(function() {
    //鼠标移入
    clearInterval(timer);
    flag = false;
}, function() {
    flag = true;
    timer = setInterval(go, 3000);
});

function autoGo(bol) {
    //自动行走
    if (bol) {
        timer = setInterval(go, 3000);
    }
}
autoGo(flag);

function go() {
    //计时器的函数
    _index++;
    selectPic(_index);
}
function selectPic(num) {
    $(".pagination span").eq(num).addClass("active").siblings().removeClass("active");
    $(".inner").animate({
        left: -num * imgWidth,
    }, 1000, function() {
        //检查是否到最后一张
        if (_index == innerGroup.length - 1) {
            _index %= 8;
            $(".inner").css("left", "0px");
            $(".pagination span").eq(0).addClass("active").siblings().removeClass("active");
        }
    })
}

其实原理都是一样,不过jQuery的原理和js原理都一样,不过不同的是jQuery已经把相关的方法封装成了函数,兼容性的相关设置也已经写好。

原文地址:https://www.cnblogs.com/programerHuan/p/4919639.html