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 相关文章推荐
THREE.JS入门教程(4)创建粒子系统
Jan 24 Javascript
javascript屏蔽右键代码
May 15 Javascript
JQuery中使文本框获得焦点的方法实例分析
Feb 28 Javascript
js正则匹配出所有图片及图片地址src的方法
Jun 08 Javascript
深入学习JavaScript中的Rest参数和参数默认值
Jul 28 Javascript
jQuery.Callbacks()回调函数队列用法详解
Jun 14 Javascript
Bootstrap零基础入门教程(三)
Jul 18 Javascript
使用React实现轮播效果组件示例代码
Sep 05 Javascript
Node.js连接postgreSQL并进行数据操作
Dec 18 Javascript
ES6中参数的默认值语法介绍
May 03 Javascript
iframe与主框架跨域相互访问实现方法
Sep 14 Javascript
node.js中 redis 的安装和基本操作示例
Feb 10 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
基于curl数据采集之正则处理函数get_matches的使用
2013/04/28 PHP
ThinkPHP模板引擎之导入资源文件方法详解
2014/06/18 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
JavaScript实现控制打开文件另存为对话框的方法
2015/04/17 Javascript
JavaScript访问字符串中单个字符的两种方法
2015/07/03 Javascript
SWFObject基本用法实例分析
2015/07/20 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
jquery 回调操作实例分析【回调成功与回调失败的情况】
2019/09/27 jQuery
vue中改变滚动条样式的方法
2020/03/03 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
javascript实现移动端红包雨页面
2020/06/23 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
[04:09]2014DOTA2国际邀请赛Ti西雅图 历届冠军相继出局 BBC综述今日比赛
2014/07/20 DOTA
Python Web开发模板引擎优缺点总结
2014/05/06 Python
Python创建日历实例
2014/08/21 Python
Python实现加载及解析properties配置文件的方法
2018/03/29 Python
基于python批量处理dat文件及科学计算方法详解
2018/05/08 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
浅析PyTorch中nn.Module的使用
2019/08/18 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
pytorch实现seq2seq时对loss进行mask的方式
2020/02/18 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
Python内存映射文件读写方式
2020/04/24 Python
python给list排序的简单方法
2020/12/10 Python
html5基础标签(html5视频标签 html5新标签用法)
2013/12/30 HTML / CSS
人力资源主管职责范本
2014/03/05 职场文书
重阳节活动总结
2014/08/27 职场文书
悬空寺导游词
2015/02/05 职场文书
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL
react antd实现动态增减表单
2021/06/03 Javascript
mybatis 获取无数据的字段不显示的问题
2021/07/15 Java/Android