- 论坛徽章:
- 0
|
这位老兄的不错哦~
yueliangdao0608 (骑着上帝他老婆看戏)
<!--
/*MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类) Ver 1.2*\
制作时间:2006-08-29 (Ver 0.5)
发布时间:2006-08-31 (Ver 0.
更新时间:2006-09-22 (Ver 1.2)
更新说明: + 加入功能 * 修正、完善
1.2.060922
+ 指定范围间歇滚动
* 程序调整
* 连续间歇滚动停止的错误
1.0.060901
+ 向下、向右滚动
+ 开始等待时间
+ 连续滚动
* 调整时间单位
* 滚动误差
* 随机死循环
* 加强性能
* 程序优化
0.8.060829
翻屏不间断向上、向左滚动
演示地址:http://www.popub.net/script/MSClass.html
下载地址:http://www.popub.net/script/MSClass.js
应用说明:页面包含<script type="text/javascript" src="MSClass.js"></script>
创建实例:new Marquee("marquee",0,1,760,52,50,5000,3000)
new Marquee("marquee",0,1,760,104,50,5000,3000,52)
参数说明:marquee 容器ID
0 向上滚动(0向上 1向下 2向左 3向右)
1 滚动的步长
760 容器可视宽度
52 容器可视高度
50 定时器 数值越小,滚动的速度越快(1000=1秒,建议不小于20)
5000 间歇停顿时间(0为不停顿,1000=1秒)
3000 开始时的等待时间(0为不等待,1000=1秒)
(52) 间歇滚动间距(可选)
\***程序制作/版权所有:崔永祥(333) E-Mail:zhadan007@21cn.com 网址:http://www.popub.net***/
function Marquee()
{
this.ID = document.getElementById(arguments[0]);
this.Direction = arguments[1];
this.Step = arguments[2];
this.Width = arguments[3];
this.Height = arguments[4];
this.Timer = arguments[5];
this.WaitTime = arguments[6];
this.StopTime = arguments[7];
if(arguments[8])
this.ScrollStep = arguments[8]
else
this.ScrollStep = this.Direction>1 ? this.Width : this.Height;
this.CTL = this.StartID = this.Stop = this.MouseOver = 0;
this.ID.style.overflowX = this.ID.style.overflowY = "hidden";
this.ID.noWrap = true;
this.ID.style.width = this.Width;
this.ID.style.height = this.Height;
this.ClientScroll = this.Direction>1 ? this.ID.scrollWidth : this.ID.scrollHeight;
this.ID.innerHTML += this.ID.innerHTML;
this.Start(this,this.Timer,this.WaitTime,this.StopTime);
}
Marquee.prototype.Start = function(msobj,timer,waittime,stoptime)
{
msobj.StartID = function(){msobj.Scroll()}
msobj.Continue = function()
{
if(msobj.MouseOver == 1)
{
setTimeout(msobj.Continue,waittime);
}
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,waittime);
}
msobj.Begin = function()
{
msobj.TimerID = setInterval(msobj.StartID,timer);
msobj.ID.onmouseover = function()
{
msobj.MouseOver = 1;
clearInterval(msobj.TimerID);
}
msobj.ID.onmouseout = function()
{
msobj.MouseOver = 0;
if(msobj.Stop == 0)
{
clearInterval(msobj.TimerID);
msobj.TimerID = setInterval(msobj.StartID,timer);
}
}
}
setTimeout(msobj.Begin,stoptime);
}
Marquee.prototype.Scroll = function()
{
switch(this.Direction)
{
case 0:
this.CTL += this.Step;
if(this.CTL >= this.ScrollStep && this.WaitTime > 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.WaitTime > 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.WaitTime > 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.WaitTime > 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;
}
}
--> |
|