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 相关文章推荐
关于图片验证码设计的思考
Jan 29 Javascript
jQuery取得select选择的文本与值的示例
Dec 09 Javascript
JavaScript数组去重的3种方法和代码实例
Jul 01 Javascript
JavaScript实现向右伸出的多级网页菜单效果
Aug 25 Javascript
前端开发不得不知的10个最佳ES6特性
Aug 30 Javascript
webpack4 + react 搭建多页面应用示例
Aug 03 Javascript
对vue中v-on绑定自定事件的实例讲解
Sep 06 Javascript
vue-router 手势滑动触发返回功能
Sep 30 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
Mar 13 Javascript
vue实现配置全局访问路径头(axios)
Nov 01 Javascript
使用Vue实现简单计算器
Feb 25 Javascript
Vuex实现简单购物车
Jan 10 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
基于qmail的完整WEBMAIL解决方案安装详解
2006/10/09 PHP
优化PHP代码技巧的小结
2013/06/02 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
2014/07/08 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
2011/06/20 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
2014/10/14 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
2015/02/28 Javascript
基于Bootstrap3表格插件和分页插件实例详解
2016/05/17 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
2016/07/04 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
原生JS查找元素的方法(推荐)
2016/11/22 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
小程序实现列表多个批量倒计时
2021/01/29 Javascript
理理Vue细节(推荐)
2019/04/16 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
2019/12/12 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
Python完全新手教程
2007/02/08 Python
Python计时相关操作详解【time,datetime】
2017/05/26 Python
关于Python 3中print函数的换行详解
2017/08/08 Python
python中文件变化监控示例(watchdog)
2017/10/16 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
Python利用WMI实现ping命令的例子
2019/08/14 Python
python实现tail -f 功能
2020/01/17 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
巴基斯坦购物网站:Goto
2019/03/11 全球购物
求职简历的自我评价怎样写好
2013/10/07 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
民族学专业大学生职业规划范文:清晰未来的构想
2014/09/20 职场文书
因工资原因离职的辞职信范文
2015/05/12 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
css中有哪些方式可以隐藏页面元素及区别
2022/06/16 HTML / CSS