原生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 合并内容相同的单元格(示例代码)
Dec 13 Javascript
jQuery遍历之next()、nextAll()方法使用实例
Nov 08 Javascript
Javascript基础教程之数据类型 (字符串 String)
Jan 18 Javascript
用javascript实现自动输出网页文本
Jul 30 Javascript
Javascript将数字转化成为货币格式字符串
Jun 22 Javascript
AngularJS入门教程之XHR和依赖注入详解
Aug 18 Javascript
jQuery验证表单格式的使用方法
Jan 10 Javascript
js基于myFocus实现轮播图效果
Feb 14 Javascript
easyui-datagrid开发实践(总结)
Aug 02 Javascript
ES6中Array.copyWithin()函数的用法实例详解
Sep 16 Javascript
基于Swiper实现移动端页面图片轮播效果
Dec 28 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
Apr 07 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笔记之:日期函数的使用介绍
2013/04/24 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
2013/06/21 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
通过javascript设置css属性的代码
2009/12/28 Javascript
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
JavaScript 验证码的实例代码(附效果图)
2013/03/22 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
js鼠标滑过图片震动特效的方法
2015/02/17 Javascript
Javascript实现飞动广告效果的方法
2015/05/25 Javascript
javascript常用函数(1)
2015/11/04 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
2016/09/05 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
2017/12/27 Javascript
详解创建自定义的Angular Schematics
2018/06/06 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
2018/08/28 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
Vue项目移动端滚动穿透问题的实现
2020/05/19 Javascript
Vuex的热更替如何实现
2020/06/05 Javascript
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
Python中基本的日期时间处理的学习教程
2015/10/16 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
员工考核管理制度
2014/02/02 职场文书
企业安全生产责任书范本
2014/07/28 职场文书
乡领导班子四风问题对照检查材料
2014/09/25 职场文书
未婚证明书模板
2014/10/08 职场文书
2016党员发展对象培训心得体会
2016/01/08 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
Python实现将多张图片合成MP4视频并加入背景音乐
2022/04/28 Python