推荐阅读:Jquery代码实现图片轮播效果(一)
在上篇文章给大家介绍了Javascript实现图片轮播效果(一)让图片跳动起来,这里我们实现图片序列节点的跳转实现.在图片跳转的同时,我们一般需要知道他跳转的是哪个位置,这里就是图片序列节点需要跟图片一同显示.下面我们就直接作分析.
在没讲正文之前先给大家展示效果图:
在HTML,CSS代码结构中我们需要加入一个图片序列是否选中的样式
#slider ol li a.active{background-color: #ffffff;color: #ff0000;}
JS代码中我们需要对上一篇文章的JS代码做一些改变和增加,这里首先要改变的是将跳转的代码做一次封装,封装到一个方法中,然后返回setInterval的值.这个主要是为序列节点实现一些功能.
然后在跳转代码中,改变相应的序列节点的样式,为了能够展示跳转的位置.
//图片节点var slider = document.getElementById("slider");var imgul = slider.getElementsByTagName("ul")[0];var imglis = imgul.getElementsByTagName("li");var len = imglis.length;//图片序列节点var numol = slider.getElementsByTagName("ol")[0];var numlinks = numol.getElementsByTagName("a");//共享序列var index = 0;//图片跳转,图片跳转的同时,改变序列节点的跳转var jump = function () {return setInterval(function(){if(index >= len){index = 0;}//图片跳转imgul.style.left = - (800 * index) + "px";//改变序列节点样式:首先要清除所有的链接的样式,然后在激活对应的序列节点样式for (var i = 0; i < len; i++) {numlinks[i].setAttribute("class","");}numlinks[index].setAttribute("class","active");index++;},2000);};var jumpindex = jump();
这里还需要加入序列节点的hover状态下的控制.
hover后图片跳转应该停止,应停留在hover下的图片展示这里序列节点的数目与图片的数目是相对应的,因此可以通过当前序列节点所在的位置来改变其他的状态.
当鼠标离开序列节点后,应当让图片继续自动跳转.
//增加序列节点的hover控制: 1. hover后要禁止图片的跳转,显示在当前的图片上,这里就需要清除跳转 2.hover离开后,在当前的图片上做图片的跳转for (var i = 0; i < len; i++){//hovernumlinks[i].onmouseover = function () {clearInterval(jumpindex);for (var i = 0; i < len; i++) {numlinks[i].setAttribute("class","");if (numlinks[i] === this){index = i;}}imgul.style.left = - (800 * index) + "px";numlinks[index].setAttribute("class","active");}//outnumlinks[i].onmouseout = function(){jumpindex = jump();}}
这样我们就完成了第二步的效果.到此本文的全部叙述也就给大家介绍完了,希望对大家有所帮助。
新闻热点
疑难解答