|
<Html>
<Head>
<Title> javascript code for multi-line news scrolling effect </title>
<Style>
Td {font-size: 12px ;}
</Style>
</Head>
<Body>
<Script>
/*************************************** *********************
* Rolling Effect
* Note: All parameters are required.
* @ Param {string} id: ID of the rolling layer to be bound
* @ Param direction {string/number} ction scroll direction top/up/0: up; bottom/down/1: down; left/2: left; right/3: right
* @ Param {number} Step rolling speed. The default value is 1. The larger the value, the slower the rolling speed.
* @ Param {number} width specifies the width of the scrolling layer. If it is set to 0, the width of the layer specified by the ID parameter is used.
* @ Param {number} height the height of the rolling layer. If it is set to 0, the height of the layer specified by the ID parameter is used.
* @ Param {number} timer rolling speed. The interval for moving 1 pixel is 30 milliseconds by default. If it is less than 20, it is 20.
* @ Param {number} delaytime the number of milliseconds between each scroll, usually 3000
* @ Param {number} waittime the number of seconds to wait before the first rolling, in milliseconds. The default value is 800. If it is less than 800, It is the default value.
* @ Param {number} The number of shards that scrollstep rolls each time
*
* @ Example
*
<Script defer>
New EAMarquee ("olist", 331,160, 5000,200 );
</Script>
<Div>
**************************************** **************************************** *********/
Function EAMarquee ()
{
This. ID = document. getElementById (arguments [0]);
If (! This. ID)
{
// Alert ("the" you want to set "+ arguments [0] +" "initialization error rn please check whether the tag ID settings are correct! ");
This. ID =-1;
Return;
}
This. Direction = this. Width = this. Height = this. DelayTime = this. WaitTime = this. CTL = this. StartID = this. Stop = this. MouseOver = 0;
This. Step = 1;
This. Timer = 30;
This. direarray array = {"top": 0, "up": 0, "bottom": 1, "down": 1, "left": 2, "right": 3 };
If (typeof arguments [1] = "number" | typeof arguments [1] = "string") 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 ();
}
EAMarquee. 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. HalfHeight = Math. round (this. Height/2 );
This. BakStep = this. Step;
This. ID. style. width = this. Width + "px ";
This. ID. style. height = this. Height + "px ";
If (typeof this. ScrollStep! = "Number") this. ScrollStep = this. Direction> 1? This. Width: this. Height;
Var templateLeft = "<table cellspacing = '0' cellpadding = '0' border = '0' style = 'border-collapse: collapse; display: inline; '> <tr> <td noWrap = true style = 'white-space: nowrap; word-break: keep-all; '> MSCLASS_TEMP_HTML </td> <td noWrap = true style = 'white-space: nowrap; word-break: keep-all; '> MSCLASS_TEMP_HTML </td> </tr> </table> ";
Var templateTop = "<table cellspacing = '0' cellpadding = '0' boder = '0' style = 'border-collapse: collapse; '> <tr> <td> MSCLASS_TEMP_HTML </td> </tr> </table> ";
Var msobj = this;
Msobj. tempHTML = msobj. ID. innerHTML;
If (msobj. Direction <= 1)
{
Msobj. ID. innerHTML = templateTop. replace (/MSCLASS_TEMP_HTML/g, msobj. ID. innerHTML );
}
Else
{
If (msobj. ScrollStep = 0 & msobj. DelayTime = 0)
{
Msobj. ID. innerHTML + = msobj. ID. innerHTML;
}
Else
{
Msobj. ID. innerHTML = templateLeft. replace (/MSCLASS_TEMP_HTML/g, msobj. ID. innerHTML );
}
}
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/2: msobj. ID. scrollHeight/2;
If (msobj. direction <= 1 & msobj. clientScroll <= msobj. height + msobj. step) | (msobj. direction> 1 & msobj. clientScroll <= msobj. width + msobj. step )){
Msobj. ID. innerHTML = msobj. tempHTML;
Delete (msobj. tempHTML );
Return;
}
Delete (msobj. tempHTML );
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 );
}
EAMarquee. 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>
<Div>
<Ul id = "olist" style = "font-size: 12px;">
<Li> <B> [Bosch] </B> Chengdu Guohui Trading Co., Ltd. </li>
<Li> <B> [mingguang brand] </B> Chengdu mingguang bellows Co., Ltd. </li>
<Li> <B> [chengsu] </B> Chengdu three Power Co., Ltd. (Sichuan cable factory) </li>
<Li> <B> [Five Stars] </B> botou Five Star High Temperature Oil Pump Plant Chengdu Office </li>
<Li> <B> [Yousheng] </B> Chengdu Shengda Weighing Apparatus Operations Department </li>
<Li> <B> [Three Gorges] </B> Chengdu Dongyuan building materials and chemical industry department </li>
<Li> <B> [Renault] </B> SHUNFA electric tools firm </li>
<Li> <B> [Bosch] </B> Chengdu Guohui Trading Co., Ltd. </li>
<Li> <B> [mingguang brand] </B> Chengdu mingguang bellows Co., Ltd. </li>
<Li> <B> [chengsu] </B> Chengdu three Power Co., Ltd. (Sichuan cable factory) </li>
<Li> <B> [Five Stars] </B> botou Five Star High Temperature Oil Pump Plant Chengdu Office </li>
<Li> <B> [Yousheng] </B> Chengdu Shengda Weighing Apparatus Operations Department </li>
<Li> <B> [Three Gorges] </B> Chengdu Dongyuan building materials and chemical industry department </li>
<Li> <B> [Renault] </B> SHUNFA electric tools firm </li>
</Ul>
<Script defer>
New EAMarquee ("olist", 331,160, 5000,200 );
</Script>
<Div>
</Body>
</Html> |