原生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 相关文章推荐
JS 判断undefined的实现代码
Nov 26 Javascript
js 动态选中下拉框
Nov 26 Javascript
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
Dec 03 Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
May 26 Javascript
使用javascript实现json数据以csv格式下载
Jan 09 Javascript
JavaScript ParseFloat()方法
Dec 18 Javascript
谈一谈JS消息机制和事件机制的理解
Apr 14 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
Aug 15 Javascript
Vue+SpringBoot开发V部落博客管理平台
Dec 27 Javascript
对VUE中的对象添加属性
Sep 18 Javascript
JS实现的贪吃蛇游戏完整实例
Jan 18 Javascript
jQuery+ThinkPHP实现图片上传
Jul 23 jQuery
详解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跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
php堆排序实现原理与应用方法
2015/01/03 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
无阻塞加载脚本分析[全]
2011/01/20 Javascript
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
js单例模式的两种方案
2013/10/22 Javascript
jquery将一个表单序列化为一个对象的方法
2013/12/02 Javascript
JS实现距离上次刷新已过多少秒示例
2014/05/23 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
易操作的jQuery表单提示插件
2015/12/01 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
vuejs事件中心管理组件间的通信详解
2017/08/09 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
2018/12/06 Javascript
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
利用js canvas实现五子棋游戏
2020/10/11 Javascript
python写的一个squid访问日志分析的小程序
2014/09/17 Python
实现python版本的按任意键继续/退出
2016/09/26 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
windows上彻底删除jupyter notebook的实现
2020/04/13 Python
Django封装交互接口代码
2020/07/12 Python
allbeauty美国:英国在线美容店
2019/03/11 全球购物
CK澳大利亚官网:Calvin Klein澳大利亚
2020/12/12 全球购物
世界上最大的铁人三项商店:Tri UK
2020/11/04 全球购物
自荐书模板
2013/12/15 职场文书
房地产融资计划书
2014/01/10 职场文书
预备党员党支部意见
2015/06/02 职场文书
地球上的星星观后感
2015/06/02 职场文书
何玥事迹观后感
2015/06/16 职场文书
老人与海读书笔记
2015/06/26 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python
Nginx虚拟主机的搭建的实现步骤
2022/01/18 Servers
Python+DeOldify实现老照片上色功能
2022/06/21 Python