原生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 相关文章推荐
javascript 动态table添加colspan\rowspan 参数的方法
Jul 25 Javascript
javascript使用smipleChart实现简单图表
Jan 02 Javascript
js调用百度地图及调用百度地图的搜索功能
Sep 07 Javascript
深入浅析JavaScript的API设计原则
Jun 14 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
Sep 01 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
Oct 09 Javascript
WEB前端实现裁剪上传图片功能
Oct 17 Javascript
Angular表单验证实例详解
Oct 20 Javascript
详解React中的组件通信问题
Jul 31 Javascript
vue.js 获取select中的value实例
Mar 01 Javascript
vue项目base64字符串转图片的实现代码
Jul 13 Javascript
vue实现轮播图帧率播放
Jan 26 Vue.js
详解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
自己动手做一个SQL解释器
2006/10/09 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
2011/11/02 PHP
yii2.0框架场景的简单使用示例
2020/01/25 PHP
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
用Javascript 获取页面元素的位置的代码
2009/09/25 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
2014/07/02 Javascript
详解JavaScript ES6中的Generator
2015/07/28 Javascript
理解JavaScript原型链
2016/10/25 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
20多个小事例带你重温ES10新特性(小结)
2019/09/29 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
JavaScript实现留言板案例
2020/03/17 Javascript
[56:46]Liquid vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[04:54]DOTA2-DPC中国联赛1月31日Recap集锦
2021/03/11 DOTA
python 获取本机ip地址的两个方法
2013/02/25 Python
Python利用pyHook实现监听用户鼠标与键盘事件
2014/08/21 Python
Python中将字典转换为列表的方法
2016/09/21 Python
Python文件操作,open读写文件,追加文本内容实例
2016/12/14 Python
Python中最大最小赋值小技巧(分享)
2017/12/23 Python
详解pyppeteer(python版puppeteer)基本使用
2019/06/12 Python
PyQt5+Pycharm安装和配置图文教程详解
2020/03/24 Python
Python enumerate() 函数如何实现索引功能
2020/06/29 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
2020/05/14 HTML / CSS
日本最大级玩偶手办购物:あみあみ Amiami
2018/04/23 全球购物
销售业务实习自我鉴定
2013/09/23 职场文书
求职简历的自我评价怎样写好
2013/10/07 职场文书
护士自我鉴定
2013/10/23 职场文书
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python
python的列表生成式,生成器和generator对象你了解吗
2022/03/16 Python