js简单的轮播

2017-08-26  本文已影响0人  糯米小馒头

1.html

    <div class="banner" id="banner">
            <ul class="items" id="items">
                <li>![](img/banner1.jpg)</li>
                <li>![](img/banner2.jpg)</li>
                <li>![](img/banner3.jpg)</li>
                <li>![](img/banner4.jpg)</li>
            </ul>
            <ul class="dots" id="dots">
                <li></li>
                <li></li>
                <li></li>
                <li></li>
            </ul>
            <p class="btn_left" id="btn_left"><</p>
            <p class="btn_right" id="btn_right">></p>           
        </div>

2.css

*{
    margin: 0;
    padding: 0;
}
ul{
    list-style: none;
}

.banner{
    width: 800px;
    height: 400px;
    margin: 50px auto;
    overflow: hidden;
    border-radius: 20px;
    position: relative;
    transition: all 1s;
}
.banner:hover{
    margin-top: 45px;
    box-shadow: 0px 5px  5px 5px #eee;
}
.items{
    width: 3200px;
    height: 400px;
}
.items>li{
    width: 800px;
    height: 400px;
    float: left;
}

.items>li>img{
    width: 800px;
    height: 400px;
}
.dots{
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 30px;
}
.dots:after{
    display: table;
    content: "";
    clear: both;
}
.dots>li{
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: white;
    float: left;
    margin: 0 15px;
}
.banner>p{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
    height: 50px;
    background: rgba(33,33,33,0.4);
    text-align: center;
    line-height: 50px;
    font-size: 34px;
    border-radius: 5px;
    cursor: default;
}
.btn_left{
    left: 10px;
}
.btn_right{
    right: 10px;
}

3.js


//1.得到页面上要用的html标签
var items = document.getElementById("items");//图片banner集
var itlis = items.getElementsByTagName("li"); //得到所有的图片banner

var dots = document.getElementById("dots");
var dotlis = dots.getElementsByTagName("li");//得到下面所有点

var btn_right = document.getElementById("btn_right");//得到下一页按钮
var btn_left = document.getElementById("btn_left");//得到上一页按钮

var liw = itlis[0].offsetWidth * 1;//得到一个图片banner的宽度
dotlis[0].style.backgroundColor = "red";//给第一个小圆点设置背景颜色

var banner = document.getElementById("banner");//得到banner标签

var cur = 0;//声明游标
var timer;//声明定时器


//2.设置下一页的点击事件
btn_right.onclick = function() { //点击下一页按钮
    dotlis[cur].style.backgroundColor = "white";//把当前小圆点的颜色设置为白色
    cur++;//游标加一
    if(cur >= itlis.length) {//判断游标是否大于或等于所有图片banner的最大值
        cur = 0; //如果大于就让游标的值变为0
    }
    items.style.marginLeft = -cur * liw + "px";//让图片banner集的下一张显示出来
    dotlis[cur].style.backgroundColor = "red";//给下一个小圆点设置背景颜色为红
}

//3.设置上一页的点击事件
btn_left.onclick = function() {//点击上一页按钮
    dotlis[cur].style.backgroundColor = "white";
    cur--;
    if(cur < 0) {
        cur = itlis.length - 1;
    }
    items.style.marginLeft = -cur * liw + "px";
    dotlis[cur].style.backgroundColor = "red";
}

// 4.设置定时器
timer = setInterval(function() {//设置定时器  每两秒点击一下下一页按钮
    btn_right.onclick();
}, 2000);

//5.鼠标悬停事件以及鼠标离开事件
banner.onmouseover = function() {//当鼠标悬停在banner上时,清除定时器
    clearInterval(timer);
}
banner.onmouseout = function() {//当鼠标离开的时候重新调用定时器
    timer = setInterval(function() {
        btn_right.onclick();
    }, 2000);
}
上一篇下一篇

猜你喜欢

热点阅读