原装js轮播图,鼠标移入停止轮播,移出继续轮播

摘要:
html lang=“en”>meta charset=“UTF-8”>Meta name=“viewport”content=“width=设备宽度;Meta-http equiv=“X-UA兼容”content=”ie=边缘“>主页<
要求:1、点击按钮,切换图片;
   2、图片能够自动轮播;
      3、鼠标移入,轮播停止;移出继续轮播;
知识点:1、定时器:setInterval();
    2、鼠标移入事件:onmouseenter/onmouseover;
      鼠标移出事件:onmouseleave/onmouseout;
难点:假设轮播图轮播到第二张图片,此时点击第一张图片,我们想要的效果是鼠标移出后,图片轮播到第二张图片,到事实是轮播到第三张图片。
 
**********************************************************************************************************
 
代码:
 
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>主页</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }
        li {
            list-style: none;
        }
        img {
            vertical-align: top;
        }
        .wrapBox {
             1226px;
            height: 460px;
            margin: 50px auto;
            position: relative;
        }
        .wrapBox img {
             100%;
        }
        .showBox li {
            display: none;
        }
        .showBox .show {
            display: block;
        }
        .dotBox {
            overflow: hidden;
            position: absolute;
            right: 50px;
            bottom: 20px;
        }
        .dotBox li {
             20px;
            height: 20px;
            background-color: #fff;
            border-radius: 50%;
            float: left;
            margin: 0 10px;
        }
        .dotBox .active {
            background-color: #3399CC;
        }
    </style>
</head>
<body>
    <div class="wrapBox">
        <ul class="dotBox">
            <li class="active"></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
        <ul class="showBox">
            <li class="show"><img src="http://t.zoukankan.com/img/1.jpg" alt=""></li>
            <li><img src="http://t.zoukankan.com/img/2.jpg" alt=""></li>
            <li><img src="http://t.zoukankan.com/img/3.jpg" alt=""></li>
            <li><img src="http://t.zoukankan.com/img/4.jpg" alt=""></li>
        </ul>
    </div>
</body>
<script>
    var dotLi = document.querySelectorAll(".dotBox li");
    var showLi = document.querySelectorAll(".showBox li");
    var wrapBox = document.querySelector(".wrapBox");
    console.log(dotLi, showLi, wrapBox);



    // 1、点击按钮切换对应图片
    for (let i = 0; i < dotLi.length; i++) {
        var li = dotLi[i];
        li.onclick = function () {
   //解决难点问题(当点击时,把i即被点击的按钮下标,赋值给index即可)
            index = i;
            // 循环遍历所有的li按钮,并清空颜色类名
            for (let j = 0; j < dotLi.length; j++) {
                dotLi[j].className = "";
                showLi[j].className = "";
            }
            // 给点击的按钮,添加颜色类名
            dotLi[i].className = "active";
            showLi[i].className = "show";
        }
    }
    // 2、自动轮播,定时器
    // 图片下标位置,默认为0
    var index = 0;
    var timer = null;
    // 页面加载时,调用一次
    playTime();
    function playTime() {
        // var timer = setInterval(function () {
        // timer要改为全局变量
        timer = setInterval(function () {
            // 每过两秒,下标加一,跳到下一张
            index++;
            // 当图片走完最后一张,也就是下标为4的时候,跳到第一张
            if (index == 4) {
                index = 0;
            }
            for (let j = 0; j < dotLi.length; j++) {
                dotLi[j].className = "";
                showLi[j].className = "";
            }
            // 给点击的按钮,添加颜色类名
            dotLi[index].className = "active";
            showLi[index].className = "show";
        }, 2000)
    }
    // 3、当鼠标移入wrapBox时,停止轮播,清除定时器
    wrapBox.onmouseenter = function () {
        clearInterval(timer);
    }
    // 4、当鼠标移出wrapBox时,继续轮播,重新调用定时器
    wrapBox.onmouseleave = function () {
        playTime();
    }
</script>
</html>
 
效果图:
 
原装js轮播图,鼠标移入停止轮播,移出继续轮播第1张

免责声明:文章转载自《原装js轮播图,鼠标移入停止轮播,移出继续轮播》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C++ Primer第5版 第四章课后练习答案Apache与php的安装下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

快捷键 Msg消息

https://baike.baidu.com/item/MSG/16826909?fr=aladdin https://docs.microsoft.com/en-us/windows/desktop/api/winuser/ns-winuser-tagmsg https://blog.csdn.net/wh_2396/article/details/5...

macOS Sierra 10.12.6 odoo 10.0 开发环境配置

参考了网上的一些教程,将最终过程记录一下,其中需要的一些程序,我已经放到百度网盘: https://pan.baidu.com/s/1boKHSTL  1、抹盘安装macOS Sierra 10.12.6: 制作macOS安装启动盘参见:http://www.iplaysoft.com/macos-usb-install-drive.html 2、安装ma...

vue.js中v-for的使用及索引获取

2.x版本: v-for="(item,index) in items" index即索引值。  ==========================分割线============================== 1.x版本: 1.v-for   示例一: <!DOCTYPE html> <html> <head>...

Android_UI_点击按钮切换背景效果实现

实现按钮按下和释放,按钮背景图片相应切换效果的方法这里介绍两种,一种是在代码里实现,另一种是在xml文件里实现 一、在xml文件里 首先现在layout的一个xml文件下定义Button如下所示: [html]view plaincopy <Button android:id="@+id/btn_user_selected" android...

33、Flask实战第33天:sweetalert提示框

这节我们继续优化,接收到返回值,我们在前端做一些处理,如:密码修改成功,弹出一个成功的提示框。这个提示框我们采用sweetalert 其中xtalert.js是对上面两个文件的一个封装,使得我们用sweetalert变得更简单,需要素材的同学点击右侧的二维码打赏10元,截图发送到邮箱463951510@qq.com吧,之前打赏过本论坛实战的就不用再打赏了...

onkeypress与onkeydown及 oncopy和onpaste 事件区别详细说明

onkeypress与onkeydown 具体区别: 1. 一个放开一个没有放开,onkeydown 先于 onkeypress 发生。 2.onkeypress 无法系统按钮。 2.onkeydown 捕获的 keyCode 不区分字母大小,而 onkeypress 区分。 onkeypress是在用户按下并放开任何字母数字键时发生。系统按钮(例如,箭头键...