字定义滚动字幕

 

<!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=gb2312" />
<title>无标题文档</title>
</head>

<body>


<script>  
function srcMarquee(){
    
this.ID = document.getElementById(arguments[0]);
    
if(!this.ID){this.ID = -1;return;}
    
this.Direction = this.Width = this.Height = this.DelayTime = this.WaitTime = this.Correct = this.CTL = this.StartID = this.Stop = this.MouseOver = 0;
    
this.Step = 1;
    
this.Timer = 30;
    
this.DirectionArray = {"top":0 , "bottom":1 , "left":2 , "right":3};
    
if(typeof arguments[1== "number")this.Direction = arguments[1];
    
if(typeof arguments[2== "number")this.Step = arguments[2];
    
if(typeof arguments[3== "number")this.Width = arguments[3];
    
if(typeof arguments[4== "number")this.Height = arguments[4];
    
if(typeof arguments[5== "number")this.Timer = arguments[5];
    
if(typeof arguments[6== "number")this.DelayTime = arguments[6];
    
if(typeof arguments[7== "number")this.WaitTime = arguments[7];
    
if(typeof arguments[8== "number")this.ScrollStep = arguments[8]
    
this.ID.style.overflow = this.ID.style.overflowX = this.ID.style.overflowY = "hidden";
    
this.ID.noWrap = true;
    
this.IsNotOpera = (navigator.userAgent.toLowerCase().indexOf("opera"== -1);
    
if(arguments.length >= 7)this.Start();
}

srcMarquee.prototype.Start 
= function(){
    
if(this.ID == -1)return;
    
if(this.WaitTime < 800)this.WaitTime = 800;
    
if(this.Timer < 20)this.Timer = 20;
    
if(this.Width == 0)this.Width = parseInt(this.ID.style.width);
    
if(this.Height == 0)this.Height = parseInt(this.ID.style.height);
    
if(typeof this.Direction == "string")this.Direction = this.DirectionArray[this.Direction.toString().toLowerCase()];
    
this.HalfWidth = Math.round(this.Width / 2);
    
this.BakStep = this.Step;
    
this.ID.style.width = this.Width;
    
this.ID.style.height = this.Height;
    
if(typeof this.ScrollStep != "number")this.ScrollStep = this.Direction > 1 ? this.Width : this.Height;
    
var msobj = this;
    
var timer = this.Timer;
    
var delaytime = this.DelayTime;
    
var waittime = this.WaitTime;
    msobj.StartID 
= function(){msobj.Scroll()}
    msobj.Continue 
= function(){
        
if(msobj.MouseOver == 1){
        setTimeout(msobj.Continue,delaytime);
     }

     
else{ clearInterval(msobj.TimerID);
        msobj.CTL 
= msobj.Stop = 0;
        msobj.TimerID 
= setInterval(msobj.StartID,timer);
     }

    }

    msobj.Pause 
= function(){
        msobj.Stop 
= 1;
        clearInterval(msobj.TimerID);
        setTimeout(msobj.Continue,delaytime);
    }

    msobj.Begin 
= function(){
   msobj.ClientScroll 
= msobj.Direction > 1 ? msobj.ID.scrollWidth : msobj.ID.scrollHeight;
   
if((msobj.Direction <= 1 && msobj.ClientScroll <msobj.Height) || (msobj.Direction > 1 && msobj.ClientScroll <msobj.Width))return;
   msobj.ID.innerHTML 
+= msobj.ID.innerHTML;
   msobj.TimerID 
= setInterval(msobj.StartID,timer);
   
if(msobj.ScrollStep < 0)return;
   msobj.ID.onmousemove 
= function(event){
       
if(msobj.ScrollStep == 0 && msobj.Direction > 1){
            
var event = event || window.event;
            
if(window.event){
                
if(msobj.IsNotOpera){msobj.EventLeft = event.srcElement.id == msobj.ID.id ? event.offsetX - msobj.ID.scrollLeft : event.srcElement.offsetLeft - msobj.ID.scrollLeft + event.offsetX;}
                
else{msobj.ScrollStep = null;return;}
            }

            
else{msobj.EventLeft = event.layerX - msobj.ID.scrollLeft;}
            msobj.Direction 
= msobj.EventLeft > msobj.HalfWidth ? 3 : 2;
            msobj.AbsCenter 
= Math.abs(msobj.HalfWidth - msobj.EventLeft);
            msobj.Step 
= Math.round(msobj.AbsCenter * (msobj.BakStep*2/ msobj.HalfWidth);
            }

        }

        msobj.ID.onmouseover 
= function(){
            
if(msobj.ScrollStep == 0)return;
            msobj.MouseOver 
= 1;
            clearInterval(msobj.TimerID);
        }

        msobj.ID.onmouseout 
= function(){
        
if(msobj.ScrollStep == 0){
            
if(msobj.Step == 0)msobj.Step = 1;
            
return;
        }

        msobj.MouseOver 
= 0;
        
if(msobj.Stop == 0){
            clearInterval(msobj.TimerID);
            msobj.TimerID 
= setInterval(msobj.StartID,timer);
        }
}
}

        setTimeout(msobj.Begin,waittime);
}


srcMarquee.prototype.Scroll 
= function(){
    
switch(this.Direction){
    
case 0:
    
this.CTL += this.Step;
    
if(this.CTL >= this.ScrollStep && this.DelayTime > 0){
        
this.ID.scrollTop += this.ScrollStep + this.Step - this.CTL;
        
this.Pause();
        
return;
    }

    
else{
        
if(this.ID.scrollTop >= this.ClientScroll){this.ID.scrollTop -= this.ClientScroll;}
        
this.ID.scrollTop += this.Step;
    }

    
break;

    
case 1:
    
this.CTL += this.Step;
    
if(this.CTL >= this.ScrollStep && this.DelayTime > 0){
        
this.ID.scrollTop -= this.ScrollStep + this.Step - this.CTL;
        
this.Pause();
        
return;
    }

    
else{
        
if(this.ID.scrollTop <= 0){this.ID.scrollTop += this.ClientScroll;}
        
this.ID.scrollTop -= this.Step;
    }

    
break;

    
case 2:
    
this.CTL += this.Step;
    
if(this.CTL >= this.ScrollStep && this.DelayTime > 0){
        
this.ID.scrollLeft += this.ScrollStep + this.Step - this.CTL;
        
this.Pause();
        
return;
    }

    
else{
        
if(this.ID.scrollLeft >= this.ClientScroll){this.ID.scrollLeft -= this.ClientScroll;}
        
this.ID.scrollLeft += this.Step;
    }

    
break;

    
case 3:
    
this.CTL += this.Step;
    
if(this.CTL >= this.ScrollStep && this.DelayTime > 0){
        
this.ID.scrollLeft -= this.ScrollStep + this.Step - this.CTL;
        
this.Pause();
        
return;
    }

    
else{
        
if(this.ID.scrollLeft <= 0){this.ID.scrollLeft += this.ClientScroll;}
    
this.ID.scrollLeft -= this.Step;
    }

    
break;
    }

}
 
</script>
<style>
#nav
{margin:7px auto 0 auto;height:117px;}
#nav #hotnews
{border-bottom:0;height:89px;}
#Scroll
{clear:both;margin:0 auto ;width:808px;height:27px;line-height:27px;border:1px solid #CDC9CA;text-align:left;color:#C2130E;background:url(http://mat1.qq.com/news/images/pub/2007/n_scroll.gif) no-repeat 18px 7px;padding-left:100px;font-size:12px;}
#Scroll a
{text-decoration:none;color:#000;margin-right:5px;background:url(http://mat1.qq.com/news/images/pub/2007/n_bar.gif) no-repeat 0 0;padding-left:10px;padding-right:20px;}
#Scroll a.s_end
{padding-right:0;margin-left:8px;}
</style>
<div id="Scroll">     
    
<div id="ScrollMe" style="overflow:hidden;height:27px;">

    
<href="" target="_blank">大学男生跳楼砸死师妹</a>    
    
<href="" target="_blank">姚明称“厌烦”易建联</a>
    
<href="" target="_blank">2007股市富豪榜揭晓</a>

    
<href="" class="s_end" target="_blank">哪些中国车去法兰克福</a>

    
<href="" target="_blank">男子盗23亿游戏币入狱
</a><br/>    <href="" target="_blank">星座明星老爸代言人</a> <href="" target="_blank">漂亮女明星的五官缺憾</a>
    
<href="" target="_blank">年轻人想问台湾人些啥</a>
<href="" target="_blank">本周最新测试网游(图)</a> <href="" class="s_end" target="_blank">最令人厌恶的十大美女</a><br/> 
    
</div> 
</div> 
<script>new srcMarquee("ScrollMe",0,1,808,27,30,3000,3000,27)</script>

</body>
</html>






posted on 2007-09-05 11:15  西湖浪子  阅读(116)  评论(0)    收藏  举报