首页 > Javascript > 刚写的一个基于 JQuery 的聚焦切换广告

刚写的一个基于 JQuery 的聚焦切换广告

2009年11月10日 发表评论 阅读评论

在给一个客户做站时 (测试站) 要用到聚焦广告,网上简单搜了一下 Flash 版的都不太满意那些样式,后来萌发自己用 JQuery 写一个的想法,于是就做了,实现起来并不难,这里不得不赞叹一下 JQuery 的强大。

HTML 部分

<div id=”doFocus”>
    <img src=”ad/01.jpg” />
    <img src=”ad/02.jpg” />
    <div id=”focusNav”></div>
</div>

CSS 部分

#doFocus{ position:relative; width:694px; height:172px; border:2px #FFF solid; overflow:hidden;}
#doFocus img{ position:absolute; width:694px; height:172px; top:0px; left:0px;}
#focusNav{ position:absolute; top:142px; right:10px; z-index:2; opacity:0.8; filter:Alpha(Opacity=80);}
#focusNav a{ display:block; float:right; width:20px; height:20px; margin-left:10px; line-height:20px; text-align:center; background:#333; color:#FFF; font-weight:bold;}
#focusNav .thisclass,#focusNav a:hover{ background:#fff; color:#333;}


JS 部分

var ImgArr = $(‘#doFocus img’);
var MaxImg = ImgArr.length;
var NowImg = 0;
var NextImg = 0;
var ToImg = -1;
var ImgNav = ”;
var Status = 0;
var t;

for(i=0;i<MaxImg;i++){
    ImgNav = ‘<a id=”imgNav’+i+'” href=”javascript:void(0)” onclick=”changeImg(‘+i+’)”>’+(i+1)+'</a>’ + ImgNav;
    ImgArr.eq(i).hide();
    ImgArr.eq(i).css(“zIndex”,”0″);
}

ImgArr.eq(0).show();
$(‘#focusNav’).html(ImgNav);
$(‘#imgNav0’).addClass(“thisclass”);

function changeImg(ImgNum){
    if(Status == 1){
        ToImg = ImgNum;
    }else{
        clearTimeout(t);
        
        ToImg = -1;
        ImgNav = ”;
        NowImg = ImgNum;
        
        for(i=0;i<MaxImg;i++){
            ImgNav = ‘<a id=”imgNav’+i+'” href=”javascript:void(0)” onclick=”changeImg(‘+i+’)”>’+(i+1)+'</a>’ + ImgNav;
            ImgArr.eq(i).hide();
            ImgArr.eq(i).css(“zIndex”,”0″);
        }

        ImgArr.eq(NowImg).show();
        $(‘#focusNav’).html(ImgNav);
        $(‘#imgNav’+NowImg).addClass(“thisclass”);

        t = setTimeout(‘doFocus()’, 3000);
    }
}

function doFocus(){
    clearTimeout(t);
    
    Status = 1;
    NextImg = (NowImg + 1 == MaxImg) ? 0 : NowImg + 1 ;

    ImgArr.eq(NextImg).css(“zIndex”,”1″);
    ImgArr.eq(NowImg).css(“zIndex”,”0″);

    ImgArr.eq(NextImg).fadeIn(“slow”,function(){
        $(‘#imgNav’+NowImg).removeClass(“thisclass”);
        $(‘#imgNav’+NextImg).addClass(“thisclass”);
        ImgArr.eq(NextImg).css(“zIndex”,”0″);
        ImgArr.eq(NowImg).hide();
        Status = 0;

        if(ToImg>-1){
            if(ToImg!=NextImg){
                ImgArr.eq(ToImg).show();
                ImgArr.eq(NextImg).hide();
                $(‘#imgNav’+ToImg).addClass(“thisclass”);
                $(‘#imgNav’+NextImg).removeClass(“thisclass”);
            }
            NowImg = ToImg;
            ToImg = -1;
        }else{
            if(NowImg == MaxImg-1){
                NowImg = 0;
            }else{
                NowImg++;
            }
        }
        
        t = setTimeout(‘doFocus()’, 3000);
    });
}

t = setTimeout(‘doFocus()’, 3000);

分类: Javascript 标签:
  1. 2009年11月19日13:17 | #1

    很有指导作用

  2. 2009年11月25日15:16 | #2

    支持原创

  1. 本文目前尚无任何 trackbacks 和 pingbacks.