(原创) js 数据滚动 (可同时处理多个滚动区)

单个滚动区的网上已经有很多的例子,今天这个适用于多个独立的滚动区


//滚动类
function Marquee(){
this.ID = document.getElementById(arguments[0]);
if (!this.ID)
return false;

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;
}
}



<!-- 示例 -->
<script>
//调用
window.onload = function(){
new Marquee(
"cargo", //容器ID<br />
0, //向上滚动(0向上 1向下 2向左 3向右)<br />
7, //滚动的步长<br />
568, //容器可视宽度<br />
189, //容器可视高度<br />
40, //定时器 数值越小,滚动的速度越快(1000=1秒,建议不小于20)<br />
4000, //间歇停顿时间(0为不停顿,1000=1秒)<br />
3000, //开始时的等待时间(0为不等待,1000=1秒)<br />
189 //间歇滚动间距(可选)<br />
);
new Marquee(
"vehicle", //容器ID<br />
0, //向上滚动(0向上 1向下 2向左 3向右)<br />
7, //滚动的步长<br />
568, //容器可视宽度<br />
189, //容器可视高度<br />
40, //定时器 数值越小,滚动的速度越快(1000=1秒,建议不小于20)<br />
5000, //间歇停顿时间(0为不停顿,1000=1秒)<br />
4000, //开始时的等待时间(0为不等待,1000=1秒)<br />
189 //间歇滚动间距(可选)<br />
);
}
</script>

<style>
.vcInfo {
width: 566px;
height: 180px;
min-height: 25px;
line-height: 25px;
border: #CCC 0px solid;
overflow: hidden;
}
</style>

<div class="m_infos">
<dl class="dl bgc_e9">
<dt class="w280 pl10">出发地 → 到达地</dt>
<dt class="w80">配货方式</dt>
<dt class="w65">类型</dt>
<dt class="w60">时间</dt>
<dt class="w66">查看</dt>
</dl>

<ul id='cargo' class="vcInfo">
<li>
<dl class="dl">
<dt class="w280 pl10">
<a href="/dedecms/a/cargo/201110/43719.html" target="_blank">
青海省 海西自治州 市辖区 → 台湾
</a>
</dt>
<dt class="w80">不限</dt>
<dt class="w65">设备</dt>
<dt class="w60">10-19</dt>
<dt class="w66">
<a href="/dedecms/a/cargo/201110/43719.html" target="_blank">查看详细</a>
</dt>
</dl>
</li>
<li>
<dl class="dl">
<dt class="w280 pl10">
<a href="/dedecms/a/cargo/201110/43619.html" target="_blank">
重庆市 市辖区 → 湖南省 郴州市 市辖区
</a>
</dt>
<dt class="w80">不限</dt>
<dt class="w65">设备</dt>
<dt class="w60">10-19</dt>
<dt class="w66">
<a href="/dedecms/a/cargo/201110/43619.html" target="_blank">查看详细</a>
</dt>
</dl>
</li>
<li>
<dl class="dl">
<dt class="w280 pl10">
<a href="/dedecms/a/cargo/201110/43519.html" target="_blank">
山东省 泰安市 市辖区 → 内蒙古区 通辽市 市辖区
</a>
</dt>
<dt class="w80">不限</dt>
<dt class="w65">设备</dt>
<dt class="w60">10-19</dt>
<dt class="w66">
<a href="/dedecms/a/cargo/201110/43519.html" target="_blank">查看详细</a>
</dt>
</dl>
</li>
<li>
<dl class="dl">
<dt class="w280 pl10">
<a href="/dedecms/a/cargo/201110/43419.html" target="_blank">
吉林省 延边自治州 市辖区 → 浙江省 温州市 市辖区
</a>
</dt>
<dt class="w80">不限</dt>
<dt class="w65">设备</dt>
<dt class="w60">10-19</dt>
<dt class="w66">
<a href="/dedecms/a/cargo/201110/43419.html" target="_blank">查看详细</a>
</dt>
</dl>
</li>
<li>
<dl class="dl">
<dt class="w280 pl10">
<a href="/dedecms/a/cargo/201110/43319.html" target="_blank">
重庆市 秀山县 → 广东省 汕尾市 市辖区
</a>
</dt>
<dt class="w80">不限</dt>
<dt class="w65">设备</dt>
<dt class="w60">10-19</dt>
<dt class="w66">
<a href="/dedecms/a/cargo/201110/43319.html" target="_blank">查看详细</a>
</dt>
</dl>
</li>
<li>
<dl class="dl">
<dt class="w280 pl10">
<a href="/dedecms/a/cargo/201110/43219.html" target="_blank">
广西区 北海市 市辖区 → 广东省 珠海市 市辖区
</a>
</dt>
<dt class="w80">不限</dt>
<dt class="w65">设备</dt>
<dt class="w60">10-19</dt>
<dt class="w66">
<a href="/dedecms/a/cargo/201110/43219.html" target="_blank">查看详细</a>
</dt>
</dl>
</li>
<li>
<dl class="dl">
<dt class="w280 pl10">
<a href="/dedecms/a/cargo/201110/43119.html" target="_blank">
河北省 保定市 安国市 → 广东省 深圳市 市辖区
</a>
</dt>
<dt class="w80">不限</dt>
<dt class="w65">设备</dt>
<dt class="w60">10-19</dt>
<dt class="w66">
<a href="/dedecms/a/cargo/201110/43119.html" target="_blank">查看详细</a>
</dt>
</dl>
</li>
<li>
<dl class="dl">
<dt class="w280 pl10">
<a href="/dedecms/a/cargo/201110/43019.html" target="_blank">
四川省 南充市 营山县 → 广西区 贺州市 钟山县
</a>
</dt>
<dt class="w80">不限</dt>
<dt class="w65">设备</dt>
<dt class="w60">10-19</dt>
<dt class="w66">
<a href="/dedecms/a/cargo/201110/43019.html" target="_blank">查看详细</a>
</dt>
</dl>
</li>
<li>
<dl class="dl">
<dt class="w280 pl10">
<a href="/dedecms/a/cargo/201110/42919.html" target="_blank">
四川省 遂宁市 市辖区 → 安徽省 宿州市 灵璧县
</a>
</dt>
<dt class="w80">不限</dt>
<dt class="w65">设备</dt>
<dt class="w60">10-19</dt>
<dt class="w66">
<a href="/dedecms/a/cargo/201110/42919.html" target="_blank">查看详细</a>
</dt>
</dl>
</li>
<li>
<dl class="dl">
<dt class="w280 pl10">
<a href="/dedecms/a/cargo/201110/42713.html" target="_blank">
四川省 内江市 市辖区 → 海南省 海南直辖县 西沙群岛
</a>
</dt>
<dt class="w80">不限</dt>
<dt class="w65">设备</dt>
<dt class="w60">10-13</dt>
<dt class="w66">
<a href="/dedecms/a/cargo/201110/42713.html" target="_blank">查看详细</a>
</dt>
</dl>
</li>
</ul>
</div>
<div class="m_infos">
<dl class="dl bgc_e9">
<dt class="w280 pl10">出发地→到达地</dt>
<dt class="w80">载重</dt>
<dt class="w65">长度</dt>
<dt class="w60">时间</dt>
<dt class="w66">查看</dt>
</dl>
<ul id='vehicle' class="vcInfo">
<li>
<dl class="dl">
<dt class="w280 pl10">
<a href="/dedecms/a/vehicle/201110/44319.html" target="_blank">
辽宁省 鞍山市 市辖区 → 宁夏区 中卫市 市辖区
</a>
</dt>
<dt class="w80">45 吨</dt>
<dt class="w65">5 米</dt>
<dt class="w60">10-19</dt>
<dt class="w66">
<a href="/dedecms/a/vehicle/201110/44319.html" target="_blank">查看详细</a>
</dt>
</dl>
</li>
<li>
<dl class="dl">
<dt class="w280 pl10">
<a href="/dedecms/a/vehicle/201110/44219.html" target="_blank">
山东省 泰安市 宁阳县 → 澳门
</a>
</dt>
<dt class="w80">45 吨</dt>
<dt class="w65">5 米</dt>
<dt class="w60">10-19</dt>
<dt class="w66">
<a href="/dedecms/a/vehicle/201110/44219.html" target="_blank">查看详细</a>
</dt>
</dl>
</li>
<li>
<dl class="dl">
<dt class="w280 pl10">
<a href="/dedecms/a/vehicle/201110/44119.html" target="_blank">
山东省 日照市 市辖区 → 广东省 江门市 市辖区
</a>
</dt>
<dt class="w80">45 吨</dt>
<dt class="w65">5 米</dt>
<dt class="w60">10-19</dt>
<dt class="w66">
<a href="/dedecms/a/vehicle/201110/44119.html" target="_blank">查看详细</a>
</dt>
</dl>
</li>
<li>
<dl class="dl">
<dt class="w280 pl10">
<a href="/dedecms/a/vehicle/201110/44019.html" target="_blank">
湖南省 郴州市 市辖区 → 湖北省 咸宁市 市辖区
</a>
</dt>
<dt class="w80">23 吨</dt>
<dt class="w65">2 米</dt>
<dt class="w60">10-19</dt>
<dt class="w66">
<a href="/dedecms/a/vehicle/201110/44019.html" target="_blank">查看详细</a>
</dt>
</dl>
</li>
<li>
<dl class="dl">
<dt class="w280 pl10">
<a href="/dedecms/a/vehicle/201110/43919.html" target="_blank">
内蒙古区 呼伦贝尔市 市辖区 → 浙江省 台州市 市辖区
</a>
</dt>
<dt class="w80">23 吨</dt>
<dt class="w65">2 米</dt>
<dt class="w60">10-19</dt>
<dt class="w66">
<a href="/dedecms/a/vehicle/201110/43919.html" target="_blank">查看详细</a>
</dt>
</dl>
</li>
<li>
<dl class="dl">
<dt class="w280 pl10">
<a href="/dedecms/a/vehicle/201110/43819.html" target="_blank">
青海省 玉树自治州 市辖区 → 广东省 江门市 市辖区
</a>
</dt>
<dt class="w80">23 吨</dt>
<dt class="w65">2 米</dt>
<dt class="w60">10-19</dt>
<dt class="w66">
<a href="/dedecms/a/vehicle/201110/43819.html" target="_blank">查看详细</a>
</dt>
</dl>
</li>
<li>
<dl class="dl">
<dt class="w280 pl10">
<a href="/dedecms/a/vehicle/201110/42813.html" target="_blank">
广东省 茂名市 电白县 → 山东省 泰安市 宁阳县
</a>
</dt>
<dt class="w80">31 吨</dt>
<dt class="w65">3.5 米</dt>
<dt class="w60">10-13</dt>
<dt class="w66">
<a href="/dedecms/a/vehicle/201110/42813.html" target="_blank">查看详细</a>
</dt>
</dl>
</li>
</ul>
</div>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值