美文网首页
原生JS轮播图

原生JS轮播图

作者: Hello杨先生 | 来源:发表于2019-07-20 23:19 被阅读0次
<title>轮播图</title>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
        #main{
            width: 500px;
            height: 300px;
            position: relative;
            margin: 20px auto;
        }
        #pic{
            width: 100%;
            height: 100%;
        }
        span{
            position: absolute;
            top: 150px;
            left: 0;
            width: 30px;
            height: 30px;
            line-height: 30px;
            background: #ccc;
            opacity: .4;
            text-align: center;
            cursor: pointer;
        }

        #right{
            margin-left: 470px;
        }
        #picNav{
            position: absolute;
            bottom: 10px;
            left: 50%;
            overflow: hidden;
            transform: translateX(-50%);
        }
        #picNav li{
            list-style: none;
            float: left;
            width: 20px;
            height: 20px;
            text-align: center;
            line-height: 20px;
            background: #cccccc;
            color: black;
        }

        #picNav .active{
            background: orangered;
            color: white;
        }

    </style>
<div id="main">
    <img src="./images/p1.jpg" alt="" id="pic">
    <span id="left">&lt;</span>
    <span id="right">&gt;</span>
    <ul id="picNav">
        <li class="active">1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>
</div>
<script>

    var arr=['./images/p1.jpg','./images/p2.jpg','./images/p3.jpg','./images/p4.jpg']
    var pic = document.getElementById("pic");
    var picL = document.getElementById("left")
    var picR = document.getElementById("right")
    var picNav = document.getElementById("picNav")
    var picNavList = picNav.getElementsByTagName("li")
    var div = document.getElementById("main")
    var index =0

    function change() {
        if(index == arr.length-1){
            index =0
        }else {
            index++
        }
        pic.src = arr[index]
        for (var i=0;i<picNavList.length;i++){
            picNavList[i].className = ""
        }
        picNavList[index].className = "active"
    }
//    实现自动播放
var t= setInterval(change,1000)
//鼠标放在图片上停止定时器
    pic.onmouseover =function () {
        clearInterval(t)
    }
    pic.onmouseleave=function () {
        t=setInterval(change,1000)
    }
//实现左右按钮功能
    picL.onmouseover=function () {
        clearInterval(t)
    }
    picL.onmouseleave=function () {
        t=setInterval(change,1000)
    }
    //左键功能实现
    picL.onclick =function(){
        if(index==0){
            index = arr.length-1
        }else {
            index--
        }
        // index==0?(index = arr.length-1) : index--
        pic.src = arr[index]
        for (var i=0;i<picNavList.length;i++){
            picNavList[i].className = ""
        }
        picNavList[index].className = "active"
    }

    //右键功能实现
    picR.onmouseover=function () {
        clearInterval(t)
    }
    picR.onmouseleave=function () {
        t=setInterval(change,1000)
    }
    picR.onclick =change;

    //实现导航功能

    // for(var j=0;j<picNavList.length;j++ ){
    //     picNavList[j].index = j
    //     picNavList[j].onmouseover =function () {
    //         for (var n=0;n<picNavList.length;n++){
    //             picNavList[n].className = ""
    //         }
    //         this.className = "active";
    //         pic.src= arr[this.index]
    //     }
    // }
    for(let j=0;j<picNavList.length;j++ ){
        picNavList[j].onmouseover =function () {
            for (var n=0;n<picNavList.length;n++){
                picNavList[n].className = ""
            }
            this.className = "active";
            index = j
            pic.src= arr[j]
        }
    }
    picNav.onmouseover =function () {
        clearInterval(t)
    }
    picNav.onmouseleave=function () {
        t=setInterval(change,1000)
    }
</script>

相关文章

  • JavaScript | 365笔记第87天 | 原生JS做轮播

    用原生JS做一个轮播图

  • 原生js制作轮播图

    原生js 制作的轮播图 今天学习了一个原生js轮播图的方法。效果图如下 通过点击上下页和中间的点进行翻页,通过改变...

  • 轮播图(2)——基于JQ的左右滑动轮播

    上回书我们说到原生js淡入淡出效果的轮播图,这回我们说说左右滑动轮播图,由于需要缓动动画效果,原生js需要封装缓动...

  • JS原生轮播图

    1.首先写好轮播图的HTML页面结构; 2.输写CSS的样式 看起来好乱,为了方便展示CSS部分的代码,只能这样编...

  • 原生js轮播图

    1、静态页面,布局结构 2、css样式可以根据自己的喜好进行改动,本样式只供参考 3、原生js代码代码中含有些注释...

  • 原生JS轮播图

  • 原生JS轮播图

    :轮播图 1:页面 2:CSS 3:Js

  • 原生js轮播图

    今天和大家分享的案例是轮播图 简书 由js实现的轮播图效果 代码展示: css部分: HTML部分: script...

  • 原生js轮播图效果

    原生js轮播图 1.静态页面,布局结构 2.css样式 可以根据自己的喜好进行改动,本样式只供参考 3.原生js区...

  • 用js原生实现轮播图

    用jquery实现轮播图非常简单的啦!有没有想过用原生js实现轮播图呢???今天琢磨了一下,摸索出来一个,就和大家...

网友评论

      本文标题:原生JS轮播图

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