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购物车实时结算特效实现思路
Sep 23 Javascript
jQuery三级下拉列表导航菜单代码分享
Apr 15 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
Mar 25 Javascript
servlet+jquery实现文件上传进度条示例代码
Jan 25 Javascript
Bootstrap3下拉菜单的实现
Feb 22 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
May 10 Javascript
Vue 中axios配置实例详解
Jul 27 Javascript
vue项目首屏加载时间优化实战
Apr 23 Javascript
layui富文本编辑器前端无法取值的解决方法
Sep 18 Javascript
Vue.set 全局操作简单示例
Sep 19 Javascript
js实现简单的倒计时
Jan 28 Javascript
vue中三级导航的菜单权限控制
Mar 31 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
PHP5+UTF8多文件上传类
2008/10/17 PHP
解析如何修改phpmyadmin中的默认登陆超时时间
2013/06/25 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
浅析THINKPHP的addAll支持的最大数据量
2015/02/03 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
微信企业转账之入口类分装php代码
2018/10/01 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
2020/05/15 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
小议javascript 设计模式 推荐
2009/10/28 Javascript
淘宝搜索框效果实现分析
2011/03/05 Javascript
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
2016/10/28 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
Vue.js学习教程之列表渲染详解
2017/05/17 Javascript
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
2018/11/25 Javascript
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
2018/12/09 Javascript
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
python3 模拟登录v2ex实例讲解
2017/07/13 Python
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
Numpy之random函数使用学习
2019/01/29 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
CSS3中的常用选择器使用示例整理
2016/06/13 HTML / CSS
车工岗位职责
2013/11/26 职场文书
公司授权委托书范文
2014/08/02 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
个人总结怎么写
2015/02/26 职场文书
电影雷锋观后感
2015/06/10 职场文书
仓库管理制度范本
2015/08/04 职场文书
装修安全责任协议书
2016/03/22 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏
vue-cli3.x配置全局的scss的时候报错问题及解决
2022/04/30 Vue.js