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 相关文章推荐
10个新的最有前途的JavaScript框架
Mar 12 Javascript
ExtJS 2.0实用简明教程 之Border区域布局
Apr 29 Javascript
实现动画效果核心方式的js代码
Sep 27 Javascript
js onload处理html页面加载之后的事件
Oct 30 Javascript
得到form下的所有的input的js代码
Nov 07 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
Dec 10 Javascript
javascript实现控制的多级下拉菜单
Jul 05 Javascript
微信JSAPI支付操作需要注意的细节
Jan 10 Javascript
浅谈Angular.js中使用$watch监听模型变化
Jan 10 Javascript
ReactNative之FlatList的具体使用方法
Nov 29 Javascript
基于Vue制作组织架构树组件
Dec 06 Javascript
js实现贪吃蛇小游戏(加墙)
Jul 31 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中json_encode、json_decode与serialize、unserialize的性能测试分析
2010/06/09 PHP
php使用timthumb生成缩略图的方法
2016/01/22 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
2019/09/30 PHP
JavaScript Date对象使用总结
2009/05/14 Javascript
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
2011/02/23 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
Jquery和angularjs获取check框选中的值的方法汇总
2016/01/17 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
JS中script标签defer和async属性的区别详解
2016/08/12 Javascript
Bootstrap Table表格一直加载(load)不了数据的快速解决方法
2016/09/17 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
webpack项目使用eslint建立代码规范实现
2019/05/16 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
vue 解决addRoutes多次添加路由重复的操作
2020/08/04 Javascript
在ironpython中利用装饰器执行SQL操作的例子
2015/05/02 Python
python矩阵的转置和逆转实例
2018/12/12 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
python获取array中指定元素的示例
2019/11/26 Python
python设置环境变量的作用整理
2020/02/17 Python
Python文件操作基础流程解析
2020/03/19 Python
python使用matplotlib:subplot绘制多个子图的示例
2020/09/24 Python
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
会计应聘求职信范文
2013/12/17 职场文书
导游词之千岛湖
2019/09/23 职场文书
CSS巧用渐变实现高级感背景光动画
2021/12/06 HTML / CSS