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 相关文章推荐
jquery控制listbox中项的移动并排序的实现代码
Sep 28 Javascript
jquery插件validate验证的小例子
May 08 Javascript
javascript 操作符(~、&amp;、|、^、)使用案例
Dec 31 Javascript
Python脚本后台运行的几种方式
Mar 09 Javascript
js窗口震动小程序分享
Nov 28 Javascript
深入理解JavaScript创建对象的多种方式以及优缺点
Jun 01 Javascript
react-native DatePicker日期选择组件的实现代码
Sep 12 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
May 16 Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 Javascript
vue+express+jwt持久化登录的方法
Jun 14 Javascript
vue获取form表单的值示例
Oct 29 Javascript
vue打包npm run build时候界面报错的解决
Aug 13 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
php连接mysql数据库代码
2009/03/10 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
2016/03/07 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
PHP 传输会话curl函数的实例详解
2017/09/12 PHP
SyntaxHighlighter代码加色使用方法
2008/09/07 Javascript
jQuery each()方法的使用方法
2010/03/18 Javascript
捕获键盘事件(且兼容各浏览器)
2013/07/03 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
TypeScript Type Innference(类型判断)
2016/03/10 Javascript
用JS生成UUID的方法实例
2016/03/30 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
underscore之Collections_动力节点Java学院整理
2017/07/10 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
node.js 发布订阅模式的实例
2017/09/10 Javascript
javascript canvas实现简易时钟例子
2020/09/05 Javascript
python中遍历文件的3个方法
2014/09/02 Python
一些常用的Python爬虫技巧汇总
2016/09/28 Python
python爬虫实现教程转换成 PDF 电子书
2017/02/19 Python
Python中动态检测编码chardet的使用教程
2017/07/06 Python
Python实现多属性排序的方法
2018/12/05 Python
PyQt5 QTable插入图片并动态更新的实例
2019/06/18 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
2019/08/08 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
Python 捕获代码中所有异常的方法
2020/08/03 Python
python从PDF中提取数据的示例
2020/10/30 Python
python3 kubernetes api的使用示例
2021/01/12 Python
HTML5使用DOM进行自定义控制示例代码
2013/06/08 HTML / CSS
几个数据库方面的面试题
2016/07/01 面试题
先进工作者申报材料
2014/12/23 职场文书
汽车销售合同文本
2019/08/08 职场文书