﻿// Marquee上下翻滚效果
//By:xingcai zhang

/*
参数列表：字符数组,起始索引,跳跃,延时,高度,实体名

---------------------------------------调用DEMO  ------------------------------------------------------
var marqueeContent=new Array();
//滚动主题
marqueeContent[0]='<a href="" target="_blank">+ 学会偷懒，并懒出境界是提高工作效率最有效的方法！</a>';
marqueeContent[1]='<a href="" target="_blank">+ 显而易见，最高的效率就是对现有材料的最佳利用。</a>';
marqueeContent[2]='<a href="" target="_blank">+ 自己能解决的事，别花钱，花钱能解决的事，别求人。</a>';
marqueeContent[3]='<a href="" target="_blank">+ 旅行是需要一种心情，更重要的是，需要一种冲动。</a>';
marqueeContent[4]='<a href="" target="_blank">+ 随时用零碎的时间(如等人、排队等)做零碎的事情。</a>';
var ma = new Marquee(marqueeContent,1,1,1000,50,'ma');
ma.initMarquee();
-------------------------------------------------------------------------------------------------------
*/
function Marquee(array,stIndex,gap,delay,height,obj)
{
    this.marqueeInterval=new Array();
    
    var Content = array;
    var marqueeStIndex=stIndex;
    var marqueeId=stIndex;
    var marqueeDelay=delay;
    var marqueeHeight=height;
    var marqueeGap=gap;
    var marqueeBox;
    
    this.delay = marqueeDelay;

    this.initMarquee=function()
    {
        var str=Content[marqueeStIndex];	
        document.write('<div class="marqueeBox" id="marqueeBox'+obj+'" style="overflow:hidden;height:'+marqueeHeight+'px" onmouseover="clearInterval('+obj+'.marqueeInterval[0])" onmouseout="'+obj+'.marqueeInterval[0]=setInterval(\''+obj+'.startMarquee()\','+obj+'.delay)"><div>'+str+'</div></div>');	
        marqueeId+=marqueeGap;	
        marqueeBox=document.getElementById("marqueeBox"+obj);
        this.marqueeInterval[0]=setInterval(obj+".startMarquee()",marqueeDelay);	
    }
    
    this.startMarquee=function()
    {
    	var str=Content[marqueeId];	
        marqueeId+=marqueeGap;	
        if(marqueeId>=Content.length)marqueeId=marqueeStIndex;	
        if(marqueeBox.childNodes.length==1)
        {
	        var nextLine=document.createElement('DIV');
	        nextLine.innerHTML=str;
	        marqueeBox.appendChild(nextLine);
        }
        else 
        {
	        marqueeBox.childNodes[0].innerHTML=str;		
	        marqueeBox.appendChild(marqueeBox.childNodes[0]);		
	        marqueeBox.scrollTop=0;		
    		
        }
        clearInterval(this.marqueeInterval[1]);	
        this.marqueeInterval[1]=setInterval(obj+".scrollMarquee()",2);	
    }
    
    this.scrollMarquee=function()
    {
    	marqueeBox.scrollTop++;	
        if(marqueeBox.scrollTop%marqueeHeight==marqueeHeight)
        {
	        clearInterval(this.marqueeInterval[1]);		
        }
    }
}