使用原生JavaScript实现轮播图
来源:互联网 发布:防伪码制作软件 编辑:程序博客网 时间:2024/05/17 06:31
首先我们整理一下轮播图的实现规则,使用绝对定位设置left值的方式
1、没有点击时,图片会自动向后循环翻转
2、鼠标放在图片上,停止自动循环
3、鼠标移开时回复自动循环
4、点击上一页的时候,图片停止自动循环,图片向右移动 left+imgWidth,当移动到第一个图片时再点击上一页直接跳到最后一页,点击结束后恢复自动循环
5、点击下一页的时候,图片停止自动循环,图片向左移动 left-imgWidth,当移动到最后一个图片时再点击下一页跳转到第一页,点击结束后恢复自动循环
然后上代码
index.html
<div id="showDiv"> <img src="image.jpg" alt="The Photo" id="showImg" /> </div> <div class="btn"> <input id="btnF" type="button" value="上一页"/> <input id="btnR" type="button" value="下一页"/> </div>
style.css
#showDiv{ width: 200px; height: 230px; border-radius: 10px; overflow: hidden; margin: 10px auto; position: relative;}#showImg{ width: 600px; position: absolute;}.btn{ width: 200px; margin:0 auto;}#btnF{ float: left;}#btnR{ float: right;}
script.js
/*共享load*/function addLoadEvent(fun){ var oldLoad = window.onload; if(typeof oldLoad != "function"){ window.onload = fun; }else{ window.onload = function(){ oldLoad(); fun(); } }}function getElement(){ /*获取img*/ var img = document.getElementById("showImg"); /*获取按钮*/ var up = document.getElementById("btnF"); var down = document.getElementById("btnR"); /*获取Left和Top*/ var left = parseInt(img.style.left); if(!left){ left = 0; } /*自动执行*/ img.goUp = setInterval(function(){ if(left == 0){ left = -400; }else{ left = left + 200; } img.style.left = left + "px"; },2000); /*当鼠标在图片上 停止*/ img.onmouseover = function(){ clearInterval(img.goUp); }; /*当鼠标移开时 继续*/ img.onmouseout = function(){ if(img.goUp){ clearInterval(img.goUp); } img.goUp = setInterval(function(){ if(left == 0){ left = -400; }else{ left = left + 200; } img.style.left = left + "px"; },2000); }; /*goUp("showImg",left);*/ /*绑定事件*/ up.onclick = function(){ /*点击时停止动画*/ clearInterval(img.goUp); if(left == 0){ left = -400; }else{ left = left + 200; } img.style.left = left + "px"; /*恢复*/ if(img.goUp){ clearInterval(img.goUp); } img.goUp = setInterval(function(){ if(left == 0){ left = -400; }else{ left = left + 200; } img.style.left = left + "px"; },2000); }; down.onclick = function () { /*点击时停止自动*/ clearInterval(img.goUp); if(left == -400){ left = 0; }else{ left = left-200; } img.style.left = left + "px"; /*恢复*/ if(img.goUp){ clearInterval(img.goUp); } img.goUp = setInterval(function(){ if(left == 0){ left = -400; }else{ left = left + 200; } img.style.left = left + "px"; },2000); };}addLoadEvent(getElement);
至此,完成轮播图效果。
阅读全文
0 0
- 使用原生JavaScript实现轮播图
- 使用原生JavaScript实现的EventEmitter
- 使用原生JavaScript实现网页定位导航
- 使用javascript原生实现一个模板引擎
- 使用javascript原生实现一个模板引擎
- 使用原生JavaScript实现AJAX、JSONP
- 原生JavaScript实现Ajax的使用
- 使用原生JavaScript实现ajax操作
- 使用原生javascript实现“分页删除”
- 原生JavaScript实现AJAX
- 原生javaScript实现Ajax
- 原生javascript实现getUrlParam
- JavaScript实现原生ajax
- 原生javascript实现jsonp
- 【JavaScript】-原生JavaScript实现Ajax
- 使用原生javascript实现ajax提交form表单
- 使用原生JavaScript实现弹出层登录拖拽功能
- 使用原生Javascript实现城市选择逐级联动
- laravel引入jquery
- baby-gin 算法
- linux主从同步
- 单例模式
- 当手头上没有示波器,如何通过代码测试stm32外部晶振是否工作
- 使用原生JavaScript实现轮播图
- php class中public,private,protected的区别,以及实例
- PHP运算符优先级
- MVC
- 如何快速开发一套微信商城小程序?
- Linux文件权限详解
- PHP常用的排序和查找算法
- PHP中使用数组实现堆栈数据结构的代码
- 微信公众号自定义菜单完整代码