JS实现小米轮播图


Posted in Javascript onSeptember 21, 2020

原生JS仿小米轮播图(最新版易懂),供大家参考,具体内容如下

本次内容主要可实现的效果:

  • 自动轮播
  • 可点击上一张 下一张进行图片的切换
  • 点击右下方小圆点进行图片切换

代码部分:

H5:

<div class="wrap">
    <ul class="list">
      <li class="item active"><img src="img/001.jpg" alt=""></li>
      <li class="item"><img src="img/002.jpg"" alt=""></li>
      <li class="item"><img src="img/001.jpg" alt=""></li>
      <li class="item"><img src="img/002.jpg" alt=""></li>
      <li class="item"><img src="img/001.jpg" alt=""></li>
    </ul>
    <!-- 小圆点 -->
    <ul class="pointList">
      <li class="point active" data-index="0"></li>
      <li class="point" data-index="1"></li>
      <li class="point"data-index="2"></li>
      <li class="point"data-index="3"></li>
      <li class="point"data-index="4"></li>
    </ul>
    <button type="button" class="btn" id="goPre"><</button>
    <button type="button" class="btn" id="goNext">></button>
</div>

CSS部分:

<style>
    .wrap {
      width: 800px;
      height: 400px;
      position: relative;
    }

    .list {
      width: 800px;
      height: 400px;
      list-style: none;
      position: relative;
      padding-left: 0px;
    }

    .item {
      position: absolute;
      width: 100%;
      height: 100%;
      color: white;
      font-size: 50px;
      opacity: 0.6;
      transform: all .8s;
    }
    .item img{
      width: 800px;
      height: 400px;
    }
    .btn {
      width: 50px;
      height: 100px;
      position: absolute;
      top: 150px;
      z-index: 100;
    }

    #goPre {
      left: 0px;
    }

    #goNext {
      right: 0px;
    }

    .item.active {
      opacity: 1;
      z-index: 10;
    }

    .pointList{
      padding-left: 0;
      list-style: none;
      position: absolute;
      right: 20px;
      bottom: 20px;
      z-index: 1000;
    }
    .point{
      width: 10px;
      height: 10px;
      background-color: rgba(0,0,0,0.4);
      border-radius: 50%;
      float: left;
      margin-right: 16px;
      border-style: solid;
      border-width: 2px;
      border-color: rgba(255,255,255, 0.6);
      cursor: pointer;
    }
    .point.active{
      background-color: rgba(255,255,255,0.4);
    }
</style>

JS部分

<script>
    //获取节点
    var items = document.getElementsByClassName('item')//图片
    var goPreBtn = document.getElementById('goPre');
    var goNextBtn = document.getElementById('goNext');
    //获取点
    var points=document.getElementsByClassName('point');

   var time=0;//定时器图片跳转参数

    var index = 0; //表示第几张图片在展示
    //可以展示第几个点

    var clearActive=function(){
      for(var i=0;i<items.length;i++){
        items[i].className='item';
        points[i].className='point';
      }
    }

    var goIndex=function(){
      clearActive();
      items[index].className='item active';
      points[index].className='point active';
    }

    var goNext=function(){
      if(index<4){
        index++;
      }else{
        index=0;
      }
      goIndex();
    }
    var goPre=function(){
      if(index==0){
        index=4;
      }else{
        index--;
      }
      goIndex();
    }

    //点击下一张切换图片
    goNextBtn.addEventListener('click' ,function(){
      goNext();
      time=0;
    })
  //点击上一张进行切换图片
    goPreBtn.addEventListener('click' ,function(){
      goPre();
      time=0;
    })

   for(var i=0;i<points.length;i++){
    points[i].addEventListener('click',function(){
      var pointIndex=this.getAttribute('data-index');
      index=pointIndex;
      goIndex();
      time=0;
    })
   }
   
  //自动轮播定时器
  setInterval(function(){
    time++;
    if(time==20){
      goNext();
      time=0;
    } 
  },100)
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
禁止刷新,回退的JS
Nov 25 Javascript
做网页的一些技巧
Feb 01 Javascript
javascript call和apply方法
Nov 24 Javascript
Javascript原型链和原型的一个误区
Oct 22 Javascript
JavaScript动态添加style节点的方法
Jun 09 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
Aug 24 Javascript
jquery实现清新实用的网页菜单效果
Aug 28 Javascript
javascript鼠标右键菜单自定义效果
Dec 08 Javascript
js 数据存储和DOM编程
Feb 09 Javascript
vue v-model实现自定义样式多选与单选功能
Jul 05 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
Apr 15 Javascript
小程序Request的另类用法详解
Aug 09 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
Sep 21 #Javascript
vue组件入门知识全梳理
Sep 21 #Javascript
Ajax获取node服务器数据的完整步骤
Sep 20 #Javascript
微信小程序获取当前时间及星期几的实例代码
Sep 20 #Javascript
vue操作dom元素的3种方法示例
Sep 20 #Javascript
npm ci命令的基本使用方法
Sep 20 #Javascript
js面试题之异步问题的深入理解
Sep 20 #Javascript
You might like
Redis使用Eval多个键值自增的操作实例
2016/11/04 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
jquery 插件 人性化的消息显示
2008/01/21 Javascript
jquery.validate使用攻略 第一部
2010/07/01 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
2015/07/18 Javascript
基于JavaScript实现动态创建表格和增加表格行数
2015/12/20 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
2016/12/08 Javascript
实例解析Array和String方法
2016/12/14 Javascript
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
详解Vue 非父子组件通信方法(非Vuex)
2017/05/24 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
2017/08/28 jQuery
node中modules.exports与exports导出的区别
2018/06/08 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
Javascript通过控制类名更改样式
2019/05/24 Javascript
使用Vue开发自己的Chrome扩展程序过程详解
2019/06/21 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
2020/02/21 Javascript
python实现系统状态监测和故障转移实例方法
2013/11/18 Python
python简单线程和协程学习心得(分享)
2017/06/14 Python
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
Python爬虫如何应对Cloudflare邮箱加密
2020/06/24 Python
Python实现加密的RAR文件解压的方法(密码已知)
2020/09/11 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
html5指南-7.geolocation结合google maps开发一个小的应用
2013/01/07 HTML / CSS
html如何对span设置宽度
2019/10/30 HTML / CSS
Bluebella美国官网:英国性感内衣品牌
2018/10/04 全球购物
总裁岗位职责
2013/12/04 职场文书
校园文化标语
2014/06/18 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
大学生职业生涯十年规划书范文
2014/09/17 职场文书
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL