原生js实现焦点轮播图动态切换
来源:互联网 发布:淘宝手机助手集分宝 编辑:程序博客网 时间:2024/05/18 06:20
原生js实现焦点轮播图动态切换
已经学了一段时间的JavaScript,正好可以给之前写过的html静态的页面文件添加一些动态的效果,丰富一下。当然最初也会参考他人的写法,下面就博主自己在敲代码的过程描述,初学者能力有限,欢迎大牛来喷~~
- 左右箭头点击切换
- 小圆点点击切换
- 箭头和小圆点交替切换
- 暂未实现定时切换
<div id="center"> <div id="list" style="left:0px;"> <a href="#"><img src="" alt=""/></a> <a href="#"><img src="" alt=""/></a> <a href="#"><img src="" alt=""/></a> <a href="#"><img src="" alt=""/></a> <a href="#"><img src="" alt=""/></a> </div> <a href="javascript:;" class="arrow" id="prev"><</a> <a href="javascript:;" class="arrow" id="next">></a> <div id="dot"> <span index="1" class="on"></span> <span index="2"></span> <span index="3"></span> <span index="4"></span> <span index="5"></span> </div></div>
首先是页面文件布局,结构的话,先是用一个大的容器包裹,里面分三部分,第一部分就是我们的图片模块,第二部分是图片两边的左右箭头,第三部分就是下面的点击切换以及显示状态的小圆点。
#center{width: 760px; height: 380px; position: relative;overflow: hidden;}#center:hover a.arrow{display: block;}/*鼠标滑过图片显示左右箭头*/#list{width: 3800px; height: 380px; position: absolute;}#list img{float: left;}.arrow{position: absolute;top: 160px; font-weight: bold; display: none; width: 50px;height: 50px; color: #fff; background: #ccc; z-index:3;text-align: center; overflow: hidden; line-height: 50px; font-size: 50px; cursor: pointer;}#prev{left:20px;}#next{right:20px;}.arrow:hover{background: #aaa;}#dot{position: absolute; bottom: 10px; left: 50%; margin-left: -35px;}#dot span{background: #ccc; border-radius:50%; cursor: pointer; display: inline-block; width: 14px; height: 14px;}#dot .on,#dot span:hover{background: #666;}
css样式参考
注意:这里的尺寸都是根据自己的图片大小设定的,你可以自行设置。这里暂不讨论图片加载的数量以及大小问题。
页面结构清楚了,下面就是我们就步入正题了。
var list = document.getElementById('list'); var dots = document.getElementById('dot').getElementsByTagName('span');var prev = document.getElementById('prev');var next = document.getElementById('next');
首先我们需要获取到图片对象、小圆点对象以及左右箭头。
function animate(offset){ var newLeft = parseInt(list.style.left) + offset; list.style.left = newLeft +'px'; if(newLeft>0){ list.style.left = -3040 +'px'; } if(newLeft<-3040){ list.style.left = 0+'px'; } list.style.transition = '1s'; //过渡效果 }
定义一个图片切换函数,原理是根据判断改变图片的绝对定位。
function showDot(){ for(var i=0;i<dots.length;i++){ if(dots[i].className == 'on'){ dots[i].className = ''; break; } } dots[index-1].className = 'on';}
这是小圆点的显示与切换函数。先遍历小圆点,把类名为on的小圆点的类改为空。
/** * 右箭头的点击切换 */ next.onclick = function(){ if(index==dots.length){ index=1; }else{ index = index+1; } animate(-760); showDot(); } /** * 小圆点的点击切换 * 注意,myIndex取出来的自定义属性index是字符串型,而不是数字型,要做转换。 */ for(var i=0;i<dots.length;i++){ dots[i].onclick = function(){ if(this.className=='on'){ return; } var myIndex = parseInt(this.getAttribute('index')); var offset = -760*(myIndex-index); animate(offset); index = myIndex; showDot(); } }
index是在html里给小圆点加的一个自定义属性,用于判断小圆点的索引值。
遇到的问题
1.因为是固定的图片数量和尺寸,所以在判断的时候也需要计算好
2.在if里面做判断是==,执行语句里的赋值是=,很容易因为不小心出错
3.获取索引值index的时候,虽然我们看到的是数字,但其实是字符型,要做转换,我开始遇到这个问题的时候困住了好久,然后各种Google,最后恍然大悟,所以细心很重要!!!
0 0
- 原生js实现焦点轮播图动态切换
- 原生JS焦点轮播图实现
- 原生JS实现焦点轮播图 完整代码
- 原生JS实现tab切换
- 原生js实现tab切换
- js实现文本框回车切换焦点
- 原生JS实现中文简繁切换
- tab栏切换(原生js实现)
- 原生JS实现TAB栏切换
- 原生JS的简单tab切换实现
- 原生JS实现轮播图
- Js原生实现轮播图
- 原生js实现轮播图
- 原生JS实现轮播图
- JS原生轮播图实现
- 轮播图--原生js实现
- 焦点轮播图(2) js箭头切换
- 原生js TAB切换
- linux中硬链接和软链接
- 无MAC法安装genymotion的解决办法_Invalid reply from server..
- ubuntu service XXX start启动报start: Rejected send message, 1 matche
- SQL语句中不等号(!=,<>)
- Interactive association rules exploration app
- 原生js实现焦点轮播图动态切换
- 简单计算器
- 'sudo'不是内部或外部命令,也不是可运行的程序或批处理文件
- notepad 列模式
- 元字符与正则表达式
- 苹果电脑系统重装 —— U盘操作
- CoreData浅谈
- NYOJ 21 三个水杯 (BFS)
- 用window.print()打印指定div里面的内容