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提交并解析后台返回的XML的代码
Nov 03 Javascript
用JavaScript页面不刷新时全选择,全删除(GridView)
Apr 14 Javascript
javascript 读取图片文件的大小
Jun 25 Javascript
asp.net刷新本页面的六种方法总结
Jan 07 Javascript
javascript性能优化之DOM交互操作实例分析
Dec 12 Javascript
jQuery实现图像旋转动画效果
May 29 Javascript
AngularJs Scope详解及示例代码
Sep 01 Javascript
深入浅析Vue组件开发
Nov 25 Javascript
微信小程序 判断手机号的实现代码
Apr 19 Javascript
angular.js中解决跨域问题的三种方式
Jul 12 Javascript
微信小程序支付功能 php后台对接完整代码分享
Jun 12 Javascript
Nest.js散列与加密实例详解
Feb 24 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
构建简单的Webmail系统
2006/10/09 PHP
PHP版国家代码、缩写查询函数代码
2011/08/14 PHP
PHP进程同步代码实例
2015/02/12 PHP
php实现的三个常用加密解密功能函数示例
2017/11/06 PHP
Yii框架的路由配置方法分析
2019/09/09 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
Mac系统下Webstorm快捷键整理大全
2017/05/28 Javascript
vue input输入框模糊查询的示例代码
2018/05/22 Javascript
解决vue v-for 遍历循环时key值报错的问题
2018/09/06 Javascript
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
nuxt引入组件和公共样式的操作
2020/11/05 Javascript
Map与WeakMap类型在JavaScript中的使用详解
2020/11/18 Javascript
详解Python中如何写控制台进度条的整理
2018/03/07 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
2020/03/19 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
2020/06/29 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
Python获取指定网段正在使用的IP
2020/12/14 Python
一波HTML5 Canvas基础绘图实例代码集合
2016/02/28 HTML / CSS
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
Timberland澳大利亚官网:全球领先的户外品牌
2019/12/10 全球购物
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
中职生求职信
2014/07/01 职场文书
领导干部保密承诺书
2014/08/30 职场文书
自我查摆剖析材料
2014/10/11 职场文书
2015年酒店客房部工作总结
2015/04/25 职场文书
您对思维方式了解多少?
2019/12/09 职场文书
sql注入教程之类型以及提交注入
2021/08/02 MySQL
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL