【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>
有了正确的思想指导,让你这个图片轮播摆哪里位置,轮播的速度控制,添加图片,甚至改成二十万张图片轮播,都是这样了。
技术分享

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。