原生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 继承详解(一)
Jul 13 Javascript
基于JQuery的6个Tab选项卡插件
Sep 03 Javascript
jQuery实现瀑布流布局
Dec 12 Javascript
node.js中的http.response.setHeader方法使用说明
Dec 14 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
Feb 20 Javascript
JavaScript操作Cookie详解
Feb 28 Javascript
谈一谈js中的执行环境及作用域
Mar 30 Javascript
AngularJs定时器$interval 和 $timeout详解
May 25 Javascript
Node.js pipe实现源码解析
Aug 12 Javascript
webpack结合express实现自动刷新的方法
May 07 Javascript
教你搭建按需加载的Vue组件库(小结)
Jul 29 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
Aug 06 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
隐藏你的.php文件的实现方法
2007/03/19 PHP
php adodb介绍
2009/03/19 PHP
PHP实现微信公众平台音乐点播
2014/03/20 PHP
PHP图像裁剪缩略裁切类源码及使用方法
2016/01/07 PHP
PHP从数组中删除元素的四种方法实例
2017/05/12 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
防止页面被iframe(兼容IE,Firefox火狐)
2010/07/04 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
JS仿百度搜索自动提示框匹配查询功能
2013/11/21 Javascript
js window.onload 加载多个函数和追加函数详解
2014/01/08 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
vue中tab选项卡的实现思路
2018/11/25 Javascript
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
python备份文件的脚本
2008/08/11 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
使用APScheduler3.0.1 实现定时任务的方法
2019/07/22 Python
python 6行代码制作月历生成器
2020/09/18 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
印尼最大的在线购物网站:MatahariMall.com
2016/08/26 全球购物
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
安踏官方商城:anta.cn
2019/12/16 全球购物
大学生专科毕业生自我评价
2013/11/17 职场文书
电气个人求职信范文
2014/02/04 职场文书
优秀学生事迹材料
2014/02/08 职场文书
教师师德承诺书
2014/03/26 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
出差报告格式模板
2014/11/06 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
春节慰问简报
2015/07/21 职场文书
2016年教师党员创先争优承诺书
2016/03/24 职场文书
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android