美文网首页web前端之路
教你如何用JS实现动态轮播图

教你如何用JS实现动态轮播图

作者: 疯也是一种态度_ | 来源:发表于2019-10-19 11:09 被阅读0次

轮播效果图如下:

1. 自动播放(鼠标划入显示区域时停止播放,鼠标划出显示区域时继续播放)
2. 点击左右箭头切换图片
3. 底下小圆圈点击切换对应的图片

下面是实现代码

css样式

<style>
    * {
        margin: 0px;
        padding: 0px;
        list-style: none;
    }

    div {
        width: 800px;
        height: 300px;
        border: solid 2px red;
        margin: 10% auto;
        position: relative;
    }

    ul li {
        display: none;
    }

    ul li img {
        width: 800px;
        height: 300px;  
    }

    ol {
        position: absolute;
        bottom: 20px;
    }

    ol li {
        width: 30px;
        height: 30px;
        border-radius: 50%;
        background: blue;
        font-size: 20px;
        line-height: 30px;
        text-align: center;
        float: left;
        margin: 0px 25px;
    }

    span {
        position: absolute;
        width: 60px;
        height: 50px;
        background: darksalmon;
        color: aliceblue;
        line-height: 50px;
        text-align: center;
        top: 50%;
        margin-top: -40px;
        font-size: 40px;
    }

    #left {
        left: 10px;
    }

    #right {
        right: 10px;
    }

    ul .love {
        display: block;
    }

    ol .love {
        background: blueviolet;
    }
</style>

HTML部分, 图片自己在网上随便找几张

<body>
<div>
    <ul>
        <li class="love"><img src="./img/movie1.jpg" alt=""></li>
        <li><img src="./img/movie2.jpg" alt=""></li>
        <li><img src="./img/movie3.jpg" alt=""></li>
        <li><img src="./img/movie4.jpg" alt=""></li>
        <li><img src="./img/movie5.jpg" alt=""></li>
        <li><img src="./img/movie6.jpg" alt=""></li>
        <li><img src="./img/movie7.jpg" alt=""></li>
        <li><img src="./img/movie8.jpg" alt=""></li>
        <li><img src="./img/movie9.jpg" alt=""></li>
        <li><img src="./img/movie10.jpg" alt=""></li>
    </ul>
    <ol>
        <li class="love">1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
        <li>10</li>
    </ol>
    <span id="left">
        &lt;
    </span>
    <span id="right">
        &gt;
    </span>
</div>
</body>

JS部分

<script>
var div = document.querySelector('div')  //获取大盒子
var ul_li = document.querySelectorAll('ul li') //获取ul下的所有li
var ol_li = document.querySelectorAll('ol li') //获取ol下的所有li
var left = document.querySelector('#left')    //获取左边的箭头
var right = document.querySelector('#right')  //获取右边的箭头
var index = 0, timer = null;
//函数封装点击右边
function auto() {
    index++
    if (index >= ul_li.length) {
        index = 0
    }
    getLed(index)
}
//点击右边
right.onclick = function () {
    auto()
}
//点击左边
left.onclick = function () {
    index--
    if (index < 0) {
        index = ul_li.length - 1
    }
    getLed(index)
}
function getLed(ind) {
    for (var j = 0; j < ul_li.length; j++) {
        ul_li[j].classList.remove('love')
        ol_li[j].classList.remove('love')
    }
    ul_li[index].classList.add('love')
    ol_li[index].classList.add('love')
}

//定时器自动播放
timer = setInterval(auto, 1000) //每隔1秒执行一次

//鼠标划入停止定时器
div.onmousemove = function () {
    clearInterval(timer)
    timer = null
}
//鼠标划出执行定时器
div.onmouseout = function () {
    timer = setInterval(auto, 1000)
}
//点击图片导航 切换图片
for (var i = 0; i < ol_li.length; i++) {
    (function (ind) {
        ol_li[ind].onclick = function () {
            getLed(index = ind)
        }
    })(i)
}
</script>

相关文章

  • 教你如何用JS实现动态轮播图

    轮播效果图如下: 1. 自动播放(鼠标划入显示区域时停止播放,鼠标划出显示区域时继续播放) 2. 点击左右箭头切换...

  • 1.Axure动态面板之轮播图显示

    Axure中动态面板常用来实现交互效果,如: 使用动态面板制作轮播图。 使用动态面板制作tab页面切换。 使用动态...

  • 如何用JS实现轮播图

    简单介绍一下我们今天这个轮播图的功能: 自动切换图片,点击前一页,后一页切换图片,点击图片导航切换图片,划上图片暂...

  • 如何用js实现轮播图

    当我们进入js阶段后,我们终于要实现更加完善的轮播图了。但是这时我们难免会有些没有思路,所以我在此为大家提供一些轮...

  • 项目-轮播图

    整个轮播图分为三部分:轮播指标、轮播项目及轮播导航。用boostrap实现轮播图要比用js、jQuery方便的多,...

  • JS轮播图

    这个轮播图的JS动态代码: var currentNum = 0; var changeBgOfObj = doc...

  • JavaScript入门(上)基础语法、数组、流程控制语句、函数

    认识JS JavaScript能做什么? 增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等) 实现页面与用户之...

  • web常用库

    js retina.js 实现retina屏幕图片自动替换 slick.js jQuery插件,实现各种轮播图 w...

  • 用vue写一个轮播图效果

    轮播图在网站中几乎无处不在,占用地方少,交互性好。今天就来聊聊如何用vue实现一个轮播效果。 一、原理在轮播图数组...

  • JavaScript进阶

    第1章 认识JS JavaScript能做什么?1.增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等)2.实现...

网友评论

    本文标题:教你如何用JS实现动态轮播图

    本文链接:https://www.haomeiwen.com/subject/gzmgmctx.html