全兼容的js超炫圖片切換效果

代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!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 runat="server">
    
<title>未命名頁面</title>
    
<style type="text/css">
#focus_change
{width:339px;height:239px;position:relative;overflow:hidden;font-family:Verdana, Arial, Helvetica, sans-serif;background:#fff;}
#loading
{position:absolute;z-index:9999;width:339px;height:239px;background:#fff url(/jscss/demoimg/loading.gif) center -40px no-repeat;color:#666;font-size:12px;text-align:center;padding-top:90px;}
#ts_bg
{position:absolute;bottom:0;z-index:1;width:339px;height:36px;background:#000;filter:alpha(opacity=40);opacity:0.4;}
#pics li
{position:absolute;top:0px;left:0px;}
#pics li img
{filter:alpha(opacity=0);opacity:0;width:339px;height:239px;}/*图片大小与框架保持一致*/
#ts li
{position:absolute;z-index:2;left:0;bottom:-32px;height:24px;line-height:24px;font-size:14px;font-weight:bold;padding-left:16px;}
#ts li a
{color:#fff; text-decoration:none;}/*标题链接样式*/
#btn,#btn_bg
{position:absolute;z-index:3;bottom:8px;right:8px;color:#fff;font-size:12px;}
#btn li,#btn_bg li
{float:left;width:22px;height:18px;line-height:18px;overflow:hidden;text-align:center;margin-right:1px;}
#btn_bg li
{background:#fff;filter:alpha(opacity=50);opacity:0.5;}
#btn li.current 
{background:#F60;}
    
</style>

    
<script type="text/javascript">
function $(id) {return document.getElementById(id);}
function $$(tag,id){return (id==undefined?document:this.$(id)).getElementsByTagName(tag);}
function poptit(tsID,n){//文字上下运动函数
    var ts = $$('li',tsID);
    
var setway=function(obj,y){obj.style.bottom=y+'px';}
    
var getway=function(obj){return parseInt(obj.style.bottom);}
    
var up=function(){
        
if (ts[n].movement) clearTimeout(ts[n].movement);//为了兼容变化中的点击
        if (y1 == 0return true;
        y1
+=Math.ceil((0 - y1) / 5);
        setway(ts[n],y1);
        
if(y1<0) ts[n].movement = setTimeout(up, 1);
    }
    
var down=function(){
        
if (ts[N].movement) clearTimeout(ts[N].movement);
        
if (y2 == -32return true;
        y2
+=Math.floor((-32 - y2) / 5);
        setway(ts[N],y2);
        
if(y2>-32) ts[N].movement = setTimeout(down, 1);
    }
    
for(var i=0;i<ts.length;i++){
        
if (!ts[i].style.bottom) ts[i].style.bottom = "-32px";
        
if(ts[i].name=='up'var N=i;
    }
    
if(!N&&n==0) {//开始载入...
        ts[n].name='up';
        
var y1=getway(ts[n]);
        up();
        
return true;
    } 
    
if(N==n) return true;//防止快速移出移入的抖动
    ts[N].name=''//标记淡入的name为空
    ts[n].name='up';
    
var y1=getway(ts[n]);
    
var y2=getway(ts[N]);
    down();
    up();
}
function opa(pics,n){//图片淡入淡出函数
    var pics = $$('img',pics);
    
var setfade=function(obj,o){
        
if (document.all) obj.style.filter = "alpha(opacity=" + o + ")";
        
else obj.style.opacity = (o / 100);
    };
    
var getfade=function(obj){
        
return (document.all)?((obj.filters.alpha.opacity)?obj.filters.alpha.opacity:false):((obj.style.opacity)?obj.style.opacity*100:false);
    }
    
var show=function(){
        
if(pics[n].move) clearTimeout(pics[n].move);
        
if (o1 == 100return true;
        o1
+=5;
        setfade(pics[n],o1);
        
if(o1<100) pics[n].move=setTimeout(show,1);
    };
    
var hide=function(){
        
if(pics[N].move) clearTimeout(pics[N].move);
        
if (o2 == 0return true;
        o2
-=5;
        setfade(pics[N],o2);
        
if(o2>0) pics[N].move=setTimeout(hide,1);
    };
    
for(var i=0;i<pics.length;i++){
        
if(!getfade(pics[i])) setfade(pics[i],0);
        
if(pics[i].name=='out'var N=i;
    }
    
if(!N&&n==0) {//开始载入...
        pics[n].name='out';
        
var o1=getfade(pics[n]);
        show();
        
return true;
    }
    
if(N==n) return true;
    pics[N].name
=''
    pics[n].name
='out';
    
var o1=getfade(pics[n]);
    
var o2=getfade(pics[N]);
    hide();
    show();
}
function classNormal() {//数字标签样式清除
    var focusBtnList = $$('li','btn');
    
for (var i = 0; i < focusBtnList.length; i++) {
        focusBtnList[i].className 
= '';
    }
}
function autoFocusChange() {//自动运行
    if (atuokey) return;
    
var focusBtnList = $$('li','btn');
    
for (var i = 0; i < focusBtnList.length; i++) {
        
if (focusBtnList[i].className == 'current') {
            
var currentNum = i;
        }
    }
    
if(currentNum<focusBtnList.length-1){
        poptit(
'ts',currentNum+1);
        opa(
'pics',currentNum+1);
           classNormal();
           focusBtnList[currentNum
+1].className = 'current';
    }
else if(currentNum==focusBtnList.length-1){
        poptit(
'ts',0);
        opa(
'pics',0);
           classNormal();
           focusBtnList[
0].className = 'current';
    }
}
function focusChange() {//交互切换
    var focusBtnList = $$('li','btn');
    
for (var i = 0; i < focusBtnList.length; i++) {
        focusBtnList[i].I
=i;
        focusBtnList[i].onclick 
= function(){
            poptit(
'ts',this.I);
            opa(
'pics',this.I);
            classNormal();
            focusBtnList[
this.I].className = 'current';
        }
        focusBtnList[i].onmouseover 
= function(){
            
this.style.backgroundColor='#f60';
            
this.style.cursor='pointer';
        }
        focusBtnList[i].onmouseout 
= function(){
            
this.style.backgroundColor='';
        }
    }
}
var atuokey = '';
function init(){//初始化
    $('btn_bg').innerHTML=$('btn').innerHTML;
    $(
'focus_change').removeChild($$('div','focus_change')[0]);
    poptit(
'ts',0);
    opa(
'pics',0);
    classNormal();
    $$(
'li','btn')[0].className = 'current';
    $(
'focus_change').onmouseover = function() {
        atuokey 
= true;
        clearInterval(auto);
    }
    $(
'focus_change').onmouseout = function() {
        atuokey 
= false;
        auto
=setInterval('autoFocusChange()', T);
    }
}
var T=3000;//每帧图片停留的时间,1000=1秒
var auto='';
window.onload
=function(){
    init();
    focusChange();
    auto
=setInterval('autoFocusChange()', T);
}
    
</script>

</head>
<body>
    
<form id="form1" runat="server">
        
<div>
            
<div id="focus_change">
                
<div id="loading">
                    加載中...
</div>
                
<div id="ts_bg">
                    文字标题的背景
</div>
                
<div id="btn_bg">
                    数字标签的背景
</div>
                
<div id="pics">
                    
<ul>
                        
<li><href="#">
                            
<img src="coverImage/20100118/0000.jpg" border="0" alt="^_^" /></a></li>
                        
<li><href="#">
                            
<img src="coverImage/20100118/1111.jpg" border="0" alt="^_^" /></a></li>
                        
<li><href="#">
                            
<img src="coverImage/20100118/2222.jpg" border="0" alt="^_^" /></a></li>
                        
<li><href="#">
                            
<img src="coverImage/20100118/3333.jpg" border="0" alt="^_^" /></a></li>[/color]
                    
</ul>
                
</div>
                
<div id="ts">
                    
<ul>
                        
<li><href="#">圖片一</a></li>
                        
<li><href="#">圖片二</a></li>
                        
<li><href="#">圖片三</a></li>
                        
<li><href="#">圖片四</a></li>
                    
</ul>
                
</div>
                
<div id="btn">
                    
<ul>
                        
<li>1</li>
                        
<li>2</li>
                        
<li>3</li>
                        
<li>4</li>
                    
</ul>
                
</div>
            
</div>
        
</div>
    
</form>
</body>
</html>

 

posted @ 2010-11-05 12:35  你妹的sb  阅读(283)  评论(0编辑  收藏  举报
百度一下