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无缝滚动代码
Jan 03 Javascript
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
Feb 10 Javascript
原生js操作checkbox用document.getElementById实现
Oct 12 Javascript
js 绑定键盘鼠标事件示例代码
Feb 12 Javascript
JavaScript实现16进制颜色值转RGB的方法
Feb 09 Javascript
深入解析JavaScript中的数字对象与字符串对象
Oct 21 Javascript
jQuery 3.0 的 setter和getter 模式详解
Jul 11 Javascript
简洁实用的BootStrap jQuery手风琴插件
Aug 31 Javascript
jQuery实现搜索页面关键字的功能
Feb 16 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
Jul 10 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
Aug 08 Javascript
vue使用lodop打印控件实现浏览器兼容打印的方法
Feb 07 Vue.js
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
PHP数组交集的优化代码分析
2011/03/06 PHP
php学习笔记之 函数声明
2011/06/09 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
Javascript基础教程之数据类型 (数值 Number)
2015/01/18 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
2016/01/08 Javascript
简述Matlab中size()函数的用法
2016/03/20 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
vue过渡和animate.css结合使用详解
2017/06/14 Javascript
网页中的图片查看器viewjs使用方法
2017/07/11 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
2020/08/10 Javascript
解决nuxt页面中mounted、created、watch执行两遍的问题
2020/11/05 Javascript
小程序中手机号识别的示例
2020/12/14 Javascript
Python实现栈的方法
2015/05/26 Python
python中的随机函数random的用法示例
2018/01/27 Python
django 实现电子支付功能的示例代码
2018/07/25 Python
Python对象与引用的介绍
2019/01/24 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
Python如何在windows环境安装pip及rarfile
2020/06/15 Python
Python 读取位于包中的数据文件
2020/08/07 Python
python破解同事的压缩包密码
2020/10/14 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
PyQt实现计数器的方法示例
2021/01/18 Python
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
军训的自我鉴定
2013/12/10 职场文书
求职自荐信的格式
2014/04/07 职场文书
个人租房协议书范本
2014/09/30 职场文书
2014年销售工作总结
2014/12/01 职场文书
实习工作表现评语
2014/12/31 职场文书
小学教师师德师风承诺书
2015/04/28 职场文书
工作时间证明
2015/06/15 职场文书
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis