原生JS实现轮播图效果


Posted in Javascript onOctober 12, 2018

学习前端也有一小段时间了,当初在学习javascript的时候,练手的一个轮播图实例,轮播图也是挺常见的了。

着是通过获取图片偏移量实现的,也实现了无缝切换,还有一点问题就是没有加上图片切换的时候的延迟了。

html:

<div id="container">
  <div id="list" style="left: -600px;">
   <img src="../image/1.jpg" alt="5">
   <img src="../image/1.jpg" alt="1">
   <img src="../image/2.jpg" alt="2">
   <img src="../image/3.jpg" alt="3">
   <img src="../image/4.jpg" alt="4">
   <img src="../image/5.jpg" alt="5">
   <img src="../image/1.jpg" alt="1">
  </div>
  <div id="buttons">
    <span class="on"></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
  </div>
  <a href="javascript:;" id="prev" class="arrow"><</a>
  <a href="javascript:;" id="next" class="arrow">></a>
 </div>

js:

window.onload = function(){
 //获取元素
 var container = document.getElementById('container');
 var list = this.document.getElementById('list');
 var buttons = document.getElementById('buttons').getElementsByTagName('span');
 var prev = document.getElementById('prev');
 var next = document.getElementById('next');
 var index = 1;//默认第一个小圆点亮

 //小圆点的点亮
 function showButton() {
  //遍历小圆点的个数,当触发onclick事件后,className为‘on'的变为‘'。
  for(var i = 0;i < buttons.length; i++){
   if(buttons[i].className == 'on'){
    buttons[i].className = '';
    break;
   }
  }
  buttons[index - 1].className = 'on'; //原始第一个小圆点点亮,onclick事件触发后,index+1
 }

 function animate (offset) {
  //获取从第一张图片开始发生的偏移量
  var newLift = parseInt(list.style.left) + offset; 
  list.style.left = newLift + 'px';
  if(newLift > -600){ 
   //如果偏移量的位置大于-600的时候,图片跳转到第五张图片
   list.style.left = -3000 + 'px';
  }
  if(newLift < -3000){ 
   //如果偏移量的位置大于-3000的时候,图片跳转到第一张图片
   list.style.left = -600 + 'px';
  }
 }
 next.onclick = function () {
  //如果button的index为5的时候,再点击next按钮会返回 1;
  if(index == 5){
   index = 1;
  }else{
   index += 1;
  }
  showButton();
  animate(-600);
 }
 prev.onclick = function () {
  if(index == 1){
   index = 5;
  }else{
   index -= 1;
  }
  showButton();
  animate(600);
 }
}

更多关于轮播图效果的专题,请点击下方链接查看学习

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
判断用户是否在线的代码
Mar 05 Javascript
js与jquery获取父元素,删除子元素的两种不同方法
Jan 09 Javascript
jQuery实现的仿百度分页足迹效果代码
Oct 30 Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
Dec 12 Javascript
JavaScript模版引擎的基本实现方法浅析
Feb 15 Javascript
jQuery设置Cookie及删除Cookie实例分析
Apr 15 Javascript
Vue.JS入门教程之自定义指令
Dec 08 Javascript
JS正则表达式判断有效数实例代码
Mar 13 Javascript
Vuex 在Vue 组件中获得Vuex 状态state的方法
Aug 27 Javascript
在vue中安装使用vux的教程详解
Sep 16 Javascript
Vue中的$set的使用实例代码
Oct 08 Javascript
使用vue-router切换页面时实现设置过渡动画
Oct 31 Javascript
详解KOA2如何手写中间件(装饰器模式)
Oct 11 #Javascript
Element Input组件分析小结
Oct 11 #Javascript
element el-input directive数字进行控制
Oct 11 #Javascript
详解angular2.x创建项目入门指令
Oct 11 #Javascript
详解vscode中vue代码颜色插件
Oct 11 #Javascript
微信小程序之裁剪图片成圆形的实现代码
Oct 11 #Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
Oct 11 #Javascript
You might like
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
thinkphp3.0 模板中函数的使用
2012/11/13 PHP
php的单例模式及应用场景详解
2021/02/27 PHP
不能再简单的无闪刷新验证码原理很简单
2007/11/05 Javascript
jQuery学习2 选择器的使用说明
2010/02/07 Javascript
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
Ajax基础知识详解
2017/02/17 Javascript
JavaScript创建对象的七种方式全面总结
2017/08/21 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
微信小程序常用的3种提示弹窗实现详解
2019/09/19 Javascript
Python算法应用实战之队列详解
2017/02/04 Python
用python代码将tiff图片存储到jpg的方法
2018/12/04 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
python下载的库包存放路径
2020/07/27 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
CheapTickets泰国:廉价航班,查看促销价格并预订机票
2019/12/28 全球购物
物流管理应届生求职信
2013/11/07 职场文书
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
敬老月活动总结
2014/08/28 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
2014年文员工作总结
2014/11/18 职场文书
教师工作能力自我评价
2015/03/04 职场文书
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB