【JavaScript】原生态兼容IE6的图片轮播
《【Bootstrap】图片轮播组件Carousel》(点击打开链接)虽然做得很不错,但是由于只兼容到IE8,所以没有用的。其实原生态兼容IE6的图片轮播并没有想象中的那么难,网上的很多兼容IE6的图片轮播其实代码写得很糟糕的。首先复用性很差,根本就不知道怎么修改,然后加入了很多如同百叶窗这些可有可无的特效,把原本简短的代码弄得很差,最后,这些东西还直接用JavaScript创建组件来显示自己的Javascript学得有多么地强大,然后又不好好教别人怎么做,直接用一个JS写完整个网页个人觉得相当不好,HTML、CSS、Javascript三者应该是不分彼此的。其实,有了《【JavaScript】利用getElementsByTagName与getElementsByName改进原生态兼容IE6标签页》(点击打开链接)的启发,这东西实现起来根本就是易如反掌。
一、基本目标
以下就是Winxp中的IE6,当然点击右下角的1,2,3,4能够自动切换,最重要的是,这东西能够自己轮播,你可以看到我的IE6一直处于非激活的状态。之后,左下角有相应的图片文字说明。你完全可以改成一些新闻图片与新闻标题,甚至利用php,jsp,asp等从数据库读取图片、新闻更新到这个组件里面来都没有问题。
二、基本准备
1、以下是我的站点目录,在winxp的系统文件c:\windows\wallpaper\web\里面拉来几张winxp自带的壁纸。用来做上面的实验。carousel.html读取的文件都从imgs里面读取出来。
2、HTML与CSS布局代码如下所示:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>carousel</title> </head> <body> <div id="carousel" style="border:1px solid #000000; float:left; width:400px;"> <div id="tabpic"> <div style="display:block;"><img src="imgs/Ascent.jpg" width="400px" /></div> <div style="display:none;"><img src="imgs/Autumn.jpg" width="400px" /></div> <div style="display:none;"><img src="imgs/Azul.jpg" width="400px" /></div> <div style="display:none;"><img src="imgs/Crystal.jpg" width="400px" /></div> </div> <div style="float:right;"> <a href="javascript:void(0)" name="tablink" onclick="div_tab(0)" style="color:#ff0000;">1</a> <a href="javascript:void(0)" name="tablink" onclick="div_tab(1)" style="color:#0000ff;">2</a> <a href="javascript:void(0)" name="tablink" onclick="div_tab(2)" style="color:#0000ff;">3</a> <a href="javascript:void(0)" name="tablink" onclick="div_tab(3)" style="color:#0000ff;">4</a> </div> <div id="tabtext" style="float:left;"> <div style="display:block;">aaaaaaaaaaaaaaaaaaa</div> <div style="display:none;">bbbbbbbbbbbbbbbbb</div> <div style="display:none;">cccccccccccccccc</div> <div style="display:none;">dddddddddddddd</div> </div> </div> <div style="clear:both;"></div> </body> </html>
里面的id是为了下面的javascript脚本控制,其余部分布局思想如下所示,采用了《【CSS】关于div的对齐与网页布局》(点击打开链接)中的布局方式:
三、制作过程
布局好之后就开始Javascript的制作,分页算法的切换思想的还是《【JavaScript】利用getElementsByTagName与getElementsByName改进原生态兼容IE6标签页》(点击打开链接)的分页思想,只是添加了一个setInterval("auto_tab_div()",2000);让切换自动进行而已。不赘述了。
<script> function div_tab(tabname){ var tabLinkArr=document.getElementsByName("tablink"); var tabPicArr=document.getElementById("tabpic").getElementsByTagName("div"); var tabTextArr=document.getElementById("tabtext").getElementsByTagName("div"); for(var i=0;i<tabLinkArr.length;i++){ if(i==tabname){ tabLinkArr[i].style.color="#ff0000"; tabPicArr[i].style.display="block"; tabTextArr[i].style.display="block"; } else{ tabLinkArr[i].style.color="#0000ff"; tabPicArr[i].style.display="none"; tabTextArr[i].style.display="none"; } } } var i=0; function auto_tab_div(){ //如果切换到最后一张图片则重新从第一张开始 if(i>3){ i=0; } //每两秒自动读取下一张图片 div_tab(i); i++; } setInterval("auto_tab_div()",2000); </script>有了正确的思想指导,让你这个图片轮播摆哪里位置,轮播的速度控制,添加图片,甚至改成二十万张图片轮播,都是这样了。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。