原生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 相关文章推荐
jquery创建并行对象或者合并对象的实现代码
Oct 10 Javascript
js中判断对象是否为空的三种实现方法
Dec 23 Javascript
node.js使用nodemailer发送邮件实例
Mar 10 Javascript
Javascript 运动中Offset的bug解决方案
Dec 24 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
Oct 28 Javascript
详解angular2实现ng2-router 路由和嵌套路由
Mar 24 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
May 07 Javascript
使用webpack打包后的vue项目如何正确运行(express)
Oct 26 Javascript
vue读取本地的excel文件并显示在网页上方法示例
May 29 Javascript
微信小程序npm引入vant-weapp的踩坑记录
Aug 01 Javascript
jQuery插件simplePagination的使用方法示例
Apr 28 jQuery
angular共享依赖的解决方案分享
Oct 15 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&amp;java(一)
2006/10/09 PHP
php cout&amp;lt;&amp;lt;的一点看法
2010/01/24 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
析构函数与php的垃圾回收机制详解
2013/10/28 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
php实现用于计算执行时间的类实例
2015/04/18 PHP
php实现的后台表格分页功能示例
2017/10/23 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
2013/04/26 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
jQuery根据表单name获取值的方法
2016/05/24 Javascript
JavaScript中两个字符串的匹配
2016/06/08 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
2016/12/05 Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
2016/12/25 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
jsonp跨域请求详解
2017/07/13 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
小程序实现横向滑动日历效果
2019/10/21 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
2020/07/28 Javascript
Python查找第n个子串的技巧分享
2018/06/27 Python
Django+Xadmin构建项目的方法步骤
2019/03/06 Python
HTML5单选框、复选框、下拉菜单、文本域的实现代码
2020/12/01 HTML / CSS
网络工程师的自我评价
2013/10/02 职场文书
店长助理岗位职责
2013/12/13 职场文书
大众服装店创业计划书范文
2014/01/01 职场文书
晚会主持词开场白
2014/03/17 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
前端监听websocket消息并实时弹出(实例代码)
2021/11/27 Javascript