/*******************************************
new Marquee({
obj  : 'myMarquee', // 滚动对象 (*必须)
name  : 'MyMQ_1',  // 实例名 (可选,默认随机)
mode  : 'x',  // 滚动模式 (x=水平, y=垂直) (可选,默认为x)
interval : 10,  // 滚动速度,越小速度越快 (可选,默认10,1秒=1000)
speed  : 1,  // 滚动步长,越大数度越快 (可选,默认1像素)
marquee marqueeautoStart : true,  // 自动开始 (可选,默认True)
hovering : true  // 是否悬停 (可选,默认True)
});
********************************************/
var MyMarquees = new Array();
// 生成随机数
function RandStr(n, u){
var tmStr = "abcdefghijklmnopqrstuvwxyz0123456789";
var Len = tmStr.length;
var Str = "";
for(i=1;i<n+1;i++){
Str += tmStr.charAt(Math.random()*Len);
}
return (u ? UpperCase() : Str);
}
/
/ 获取检测实例名
function getMyMQName(mName) {
var name = mName==undefined ? RandStr(5) : mName;
var myNames = ','+ MyMarquees.join(',') +',';
while(myNames.indexOf(','+ name +',')!=-1) {
name = RandStr(5);
}
return name;
}
function Marquee(inits) {
var $self = this;
var $init = inits;
// 获取元素
$self.Get = function(e) {
return typeof(e) == 'object' ? e : ElementById(e);
};
// 无间滚动初始化
$self.Init = function() {
if($init.obj==undefined) return;
$de  = $de==undefined ? 'x' : $de;    // 滚动模式(x:横向, y:纵向)
$self.mName  = getMyMQName($init.name);        // 实例名
$self.mObj  = $self.Get($init.obj);        // 滚动对象
$self.interval = $init.interval==undefined ? 10 : $init.interval;  // 滚动间歇
$self.speed  = $init.speed==undefined ? 1 : $init.speed;    // 滚动间歇
$self.autoStart = $init.autoStart==undefined ? true : $init.autoStart; // 自动开始
$self.hovering = $init.hovering==undefined ? true : $init.hovering; // 鼠标经过是否暂停
$self.mDo  = null;            // 计时器
$self.pause  = false;            // 暂停状态
if(($self.mObj.scrollWidth<=$self.mObj.offsetWidth && $de=='x') || ($self.mObj.scrollHeight<=$self.mObj.offsetHeight && $de=='y')) return;
MyMarquees.push($self.mName);
// 克隆滚动内容
$self.mObj.innerHTML = $de=='x' ? (
'<table width="100%" border="0" align="left" cellpadding="0" cellspace="0">'+
'    <tr>'+
'        <td id="MYMQ_'+ $self.mName +'_1">'+ $self.mObj.innerHTML +'</td>'+
'        <td id="MYMQ_'+ $self.mName +'_2">'+ $self.mObj.innerHTML +'</td>'+
'    </tr>'+
'</table>'
) : (
'<div id="MYMQ_'+ $self.mName +'_1">'+ $self.mObj.innerHTML +'</div>'+
'<div id="MYMQ_'+ $self.mName +'_2">'+ $self.mObj.innerHTML
+'</div>'
);
// 获取对象、高宽
$self.mObj1 = $self.Get('MYMQ_'+ $self.mName +'_1');
$self.mObj2 = $self.Get('MYMQ_'+ $self.mName +'_2');
$1Width = $self.mObj1.scrollWidth;
$1Height = $self.mObj1.scrollHeight;
// 初始滚动
if($self.autoStart) $self.Start();
};
// 开始滚动
$self.Start = function() {
clearInterval($self.mDo);
$self.mDo = setInterval(($de=='x' ? $self.MoveX : $self.MoveY), $self.interval);
if($self.hovering) {
$useover = function() {$self.pause = true;};
$useout = function() {$self.pause = false;};
}
}
// 停止滚动
$self.Stop = function() {
clearInterval($self.mDo);
$useover = function() {};
$useout = function() {};
}
/
/ 水平滚动
$self.MoveX = function() {
if($self.pause) return;
var left = $self.mObj.scrollLeft;
if(left>=$1Width && $self.speed>0) {
$self.mObj.scrollLeft = 1Width-$self.speed;
}else if(left==0 && $self.speed<0) {
$self.mObj.scrollLeft = $1Width-$self.speed;
}else{
$self.mObj.scrollLeft += $self.speed;
}
};
// 垂直滚动
$self.MoveY = function() {
if($self.pause) return;
var top = $self.mObj.scrollTop;
if(top>=$1Height && $self.speed>0){
$self.mObj.scrollTop = 1Height-$self.speed;
}else if(top==0 && $self.speed<0) {
$self.mObj.scrollTop = $1Height-$self.speed;
}else{
$self.mObj.scrollTop += $self.speed;
}
};
$self.Init();
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。