原生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最新动画教程+iso光盘下载
Jan 22 Javascript
jquery 查找新建元素代码
Jul 06 Javascript
jquery的live使用注意事项
Feb 18 Javascript
JS判断移动端访问设备并加载对应CSS样式
Jun 13 Javascript
jQuery中的pushStack实现原理和应用实例
Feb 03 Javascript
详解Bootstrap的iCheck插件checkbox和radio
Aug 24 Javascript
bootstrap table动态加载数据示例代码
Mar 25 Javascript
vue快捷键与基础指令详解
Jun 01 Javascript
解决vue项目报错webpackJsonp is not defined问题
Mar 14 Javascript
vue的mixins属性详解
Mar 14 Javascript
Next.js项目实战踩坑指南(笔记)
Nov 29 Javascript
详解Js里的for…in和for…of的用法
Mar 28 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/02/20 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
2019/02/28 PHP
改变状态栏文字的js代码
2014/06/13 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
JS设置cookie、读取cookie
2016/02/24 Javascript
JavaScript中windows.open()、windows.close()方法详解
2016/07/28 Javascript
jQuery可见性过滤选择器用法示例
2016/09/09 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
详解wow.js中各种特效对应的类名
2017/09/13 Javascript
jQuery使用zTree插件实现可拖拽的树示例
2017/09/23 jQuery
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
[03:21]辉夜杯主赛事 12月25日TOP5
2015/12/26 DOTA
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
python矩阵的转置和逆转实例
2018/12/12 Python
Python实现12306火车票抢票系统
2019/07/04 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
详解用selenium来下载小姐姐图片并保存
2021/01/26 Python
Python实现简单的2048小游戏
2021/03/01 Python
惠普墨西哥官方商店:HP墨西哥
2016/12/01 全球购物
Europcar意大利:汽车租赁
2019/07/07 全球购物
六十大寿答谢词
2014/01/12 职场文书
学生打架检讨书大全
2014/01/23 职场文书
小学生新年寄语
2014/04/03 职场文书
大学生学雷锋活动总结
2014/06/26 职场文书
个人授权委托书样本
2014/09/13 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
防灾减灾标语
2014/10/07 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
数据结构课程设计心得体会
2016/01/15 职场文书
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android
python之基数排序的实现
2021/07/26 Python