原生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 相关文章推荐
Auntion-TableSort国人写的一个javascript表格排序的东西
Nov 12 Javascript
JS实现网页右侧带动画效果的伸缩窗口代码
Oct 29 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
Nov 26 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
Dec 25 Javascript
Ionic如何实现下拉刷新与上拉加载功能
Jun 03 Javascript
浅谈时钟的生成(js手写简洁代码)
Aug 20 Javascript
jQuery中DOM节点的删除方法总结(超全面)
Jan 22 Javascript
使用cookie绕过验证码登录的实现代码
Oct 12 Javascript
JS点击动态添加标签、删除指定标签的代码
Apr 18 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
Apr 25 Javascript
微信小程序实现弹出菜单动画
Jun 21 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
Jul 21 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
超级简单的发送邮件程序
2006/10/09 PHP
php 无法载入mysql扩展
2010/03/12 PHP
php 常用算法和时间复杂度
2013/07/01 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
Ext JS Grid在IE6 下宽度的问题解决方法
2009/02/15 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
JQuery文字列表向上滚动的代码
2013/11/13 Javascript
nodejs实现的一个简单聊天室功能分享
2014/12/06 NodeJs
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
jquery 判断selection range 是否在容器中的简单实例
2016/08/02 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
2016/11/26 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
代码详解javascript模块加载器
2018/03/04 Javascript
基于node.js实现爬虫的讲解
2019/02/18 Javascript
用vue 实现手机触屏滑动功能
2020/05/28 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python机器学习理论与实战(六)支持向量机
2018/01/19 Python
Python一个简单的通信程序(客户端 服务器)
2019/03/06 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
如何搭建pytorch环境的方法步骤
2020/05/06 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
python删除某个目录文件夹的方法
2020/05/26 Python
python操作redis数据库的三种方法
2020/09/10 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
Etam德国:内衣精品店
2019/08/25 全球购物
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
信息专业本科生个人的自我评价
2013/10/28 职场文书
董事长岗位职责
2013/11/30 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
MySQL时间盲注的五种延时方法实现
2021/05/18 MySQL