一个简单的图片轮播功能(图片自动播放,点击控件可直接跳转对对应图片)

<!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" />
<style type="text/css" >
.d1{width:443px;height:auto;overflow:hidden;border:#666666 2px solid;background-color:#000000;position:relative;}
.d2{width:100%;height:209px;overflow:hidden;}
.num_list{position:absolute;width:100%;left:0px;bottom:-1px;background-color:#000000;color:#FFFFFF;font-size:12px;padding:4px 0px;height:20px;overflow:hidden;}
.num_list span{display:inline-block;height:16px;padding-left:6px;}
/*图片隐藏*/
ul{display:none;}
/*导航控制按钮,堆叠在最顶层,底部右置,文字加粗*/
.button{position:absolute; z-index:1000; right:0px; bottom:2px; font-size:13px; font-weight:bold; font-family:Arial, Helvetica, sans-serif;}
/*控制按钮样式 非选中状态 为什么还有b2*/ 
.b1,.b2{background-color:#666666;display:block;float:left;padding:2px 6px;margin-right:3px;color:#FFFFFF;text-decoration:none;cursor:pointer;}
/*控制按钮样式 选中状态 */ 
.b2{color:#FFCC33;background-color:#FF6633;}
</style>
<script language="javascript" type="text/javascript">

//主函数
var s=function(){
    var turnTime=2000; //切换间隔时间
    var turnSpeed=10; //切换速速
    var textView=80; //文字背景的透明度
    var source="content" //焦点轮换图片容器的id名称
    //获取对象
    function getTag(tag,obj){
        if(obj==null){
            return document.getElementsByTagName(tag)
        }
        else{
            return obj.getElementsByTagName(tag)
        }
    }
    function getid(id){
        return document.getElementById(id)
    }
    var opac=0,
        j=0,//鼠标点击控制按钮的序号
        t=63,
        num,
        scton=0,
        timer,
        timer2,
        timer3;
    var id=getid(source);//获得存放图片的容器
    var li=getTag("li",id);//获得图片存放列表
    var div=document.createElement("div");
    var title=document.createElement("div");
    var span=document.createElement("span");
    var button=document.createElement("div");
    button.className="button";
    //轮播控制按钮
    for(var i=0;i<li.length;i++){
        var a=document.createElement("a");
        a.innerHTML=i+1;
        a.onclick=function(){
            clearTimeout(timer);
            clearTimeout(timer2);
            clearTimeout(timer3);
            j=parseInt(this.innerHTML)-1;
            scton=0;t=63;opac=0;
            fadeon();
        }
        a.className="b1";
        a.onmouseover=function(){
            this.className="b2"
        }
        a.onmouseout=function(){
            this.className="b1";
            sc(j)
        }
        button.appendChild(a);
    }
    //控制图层透明度
    function alpha(obj,n){
        if(document.all){
            obj.style.filter="alpha(opacity="+n+")";
        }else{
            obj.style.opacity=(n/100);
        }
    }
    //控制焦点按钮
    function sc(n){
        for(var i=0;i<li.length;i++){
            button.childNodes[i].className="b1";
        }
        button.childNodes[n].className="b2";
    }
    title.className="num_list";
    title.appendChild(span);
    alpha(title,textView);
    id.className="d1";
    div.className="d2";
    id.appendChild(div);
    id.appendChild(title);
    id.appendChild(button);
    //渐显
    var fadeon=function(){
        opac+=5;
        div.innerHTML=li[j].innerHTML;
        span.innerHTML=getTag("img",li[j])[0].alt;
        alpha(div,opac);
        if(scton==0){
            sc(j);
            num=-2;
            scrolltxt();
            scton=1
        }
        if(opac<100){
            timer=setTimeout(fadeon,turnSpeed);
        }
        else{
            timer2=setTimeout(fadeout,turnTime);
        }
    }
    //渐隐
    var fadeout=function(){
        opac-=5;
        div.innerHTML=li[j].innerHTML;
        alpha(div,opac);
        if(scton==0){
            num=2;
            scrolltxt();
            scton=1;
        }
        if(opac>0){
            timer=setTimeout(fadeout,turnSpeed)
        }else{
            if(j<li.length-1){
                j++;
            }else{
                j=0;
            }
            fadeon();
        }
    }
    //滚动文字
    var scrolltxt=function(){
        t+=num;
        span.style.marginTop=t+"px";
        if(num<0 && t>3){
            timer3=setTimeout(scrolltxt,turnSpeed);
        }else if(num>0 && t<62){
            timer3=setTimeout(scrolltxt,turnSpeed);
        }else{
            scton=0;
        }
    }
    fadeon();
}
//初始化
window.onload=s;
</script>
<title>Javascript图片幻灯效果</title>
</head>
<body>
<div id="content">
    <ul>
      <li><a href="#" target="_blank"><img src="pic/1.jpg" width="443" height="209" alt="展示图片1" /></a></li>
      <li><a href="#" target="_blank"><img src="pic/2.jpg" width="443" height="209" alt="展示图片2" /></a></li>
      <li><a href="#" target="_blank"><img src="pic/3.jpg" width="443" height="209" alt="展示图片3" /></a></li>
      <li><a href="#" target="_blank"><img src="pic/4.jpg" width="443" height="209" alt="展示图片4" /></a></li>
    </ul>
</div>
</body>
</html>

HTML代码如上,本人因为有次笔试题做到了,当时没做出来,现在有空了附上代码,欢迎大家多多交流 :D

posted @ 2015-01-18 15:32  chlii  阅读(1752)  评论(0编辑  收藏  举报