You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
128 lines
3.0 KiB
JavaScript
128 lines
3.0 KiB
JavaScript
// JavaScript Document
|
|
var dir=1;//每步移动像素,大=快
|
|
var speed=40;//循环周期(毫秒)大=慢
|
|
var MyMar=null;
|
|
v
|
|
function Marquee(){//正常移动
|
|
var scrollbox = document.getElementById("scrollbox");
|
|
var scrollcopy = document.getElementById("scrollcopy");
|
|
if(dir>0&&(scrollcopy.offsetWidth-scrollbox.scrollLeft)<=0){
|
|
scrollbox.scrollLeft=0;
|
|
}
|
|
if(dir<0 &&(scrollbox.scrollLeft<=0)){
|
|
scrollbox.scrollLeft=scrollcopy.offsetWidth;
|
|
}
|
|
scrollbox.scrollLeft+=dir;
|
|
}
|
|
|
|
function onmouseoverMy(){
|
|
window.clearInterval(MyMar);
|
|
}//暂停移动
|
|
|
|
function onmouseoutMy() {
|
|
MyMar=setInterval(Marquee,speed);
|
|
}//继续移动
|
|
|
|
function r_left(){
|
|
if(dir==-1)
|
|
dir=1;
|
|
}//换向左移
|
|
|
|
function r_right(){
|
|
if(dir==1)
|
|
dir=-1;
|
|
}//换向右移
|
|
|
|
function IsIE(){
|
|
var browser=navigator.appName
|
|
if((browser=="Netscape")){
|
|
return false;
|
|
}
|
|
else if(browser=="Microsoft Internet Explorer"){
|
|
return true;
|
|
}else{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
var _IsIE = IsIE();
|
|
var _MousePX = 0;
|
|
var _MousePY = 0;
|
|
var _DivLeft = 0;
|
|
var _DivRight = 0;
|
|
var _AllDivWidth = 0;
|
|
var _AllDivHeight = 0;
|
|
|
|
function MoveDiv(e){
|
|
|
|
var obj = document.getElementById("scrollbox");
|
|
_MousePX = _IsIE ? (document.body.scrollLeft + event.clientX) : e.pageX;
|
|
_MousePY = _IsIE ? (document.body.scrollTop + event.clientY) : e.pageY;
|
|
//Opera Browser Can Support ''window.event'' and ''e.pageX''
|
|
|
|
var obj1 = null;
|
|
|
|
if(obj.getBoundingClientRect){
|
|
//IE
|
|
obj1 = document.getElementById("scrollbox").getBoundingClientRect();
|
|
_DivLeft = obj1.left;
|
|
_DivRight = obj1.right;
|
|
_AllDivWidth = _DivRight - _DivLeft;
|
|
}else if(document.getBoxObjectFor){
|
|
//FireFox
|
|
obj1 = document.getBoxObjectFor(obj);
|
|
var borderwidth = (obj.style.borderLeftWidth != null && obj.style.borderLeftWidth != "") ? parseInt(obj.style.borderLeftWidth) : 0;
|
|
_DivLeft = parseInt(obj1.x) - parseInt(borderwidth);
|
|
_AllDivWidth = Cut_Px(obj.style.width);
|
|
_DivRight = _DivLeft + _AllDivWidth;
|
|
}else{
|
|
//Other Browser(Opera)
|
|
_DivLeft = obj.offsetLeft;
|
|
_AllDivWidth = Cut_Px(obj.style.width);
|
|
var parent = obj.offsetParent;
|
|
|
|
if(parent != obj){
|
|
while (parent){
|
|
_DivLeft += parent.offsetLeft;
|
|
parent = parent.offsetParent;
|
|
}
|
|
}
|
|
_DivRight = _DivLeft + _AllDivWidth;
|
|
}
|
|
|
|
var pos1,pos2;
|
|
pos1 = parseInt(_AllDivWidth * 0.4) + _DivLeft;
|
|
pos2 = parseInt(_AllDivWidth * 0.6) + _DivLeft;
|
|
|
|
if(_MousePX > _DivLeft && _MousePX < _DivRight){
|
|
if(_MousePX > _DivLeft && _MousePX < pos1){
|
|
r_left(); //Move left
|
|
}
|
|
else if(_MousePX < _DivRight && _MousePX > pos2){
|
|
r_right(); //Move right
|
|
}
|
|
if(_MousePX > pos1 && _MousePX < pos2){
|
|
onmouseoverMy(); //Stop
|
|
MyMar=null;
|
|
}else if(_MousePX < pos1 || _MousePX > pos2){
|
|
if(MyMar==null){
|
|
MyMar=setInterval(Marquee,speed);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function Cut_Px(cswidth){
|
|
cswidth = cswidth.toLowerCase();
|
|
if(cswidth.indexOf("px") != -1){
|
|
cswidth.replace("px","");
|
|
cswidth = parseInt(cswidth);
|
|
}
|
|
return cswidth;
|
|
}
|
|
|
|
function MoveOutDiv(){
|
|
if(MyMar == null){
|
|
MyMar=setInterval(Marquee,speed);
|
|
}
|
|
} |