﻿// JScript 文件
//js无缝滚动集合
//当参数e为数字时，为自动滚动
//当参数e为字符串是，如top、left等，为手动滚动
//speed滚动的速度单位毫秒
//space滚动的间隔,
// speededUp=0;//加快的速度
//autoMove,标记是否自动移动，true 自动，false 不自动
//注意使用datalist控件层和表格嵌套时的问题，参照爱尔网站的调用
//注意最外层的宽度活高度要大于内容层的相应的标准

function boxmove(d1,d2,d3,e,speedTemp,spaceTemp,obj,obj2,spaceUpTemp,autoMove){ 
    var speed=speedTemp;
    var space=spaceTemp;
    var sign=false;//内容层是否大于最外层，如果大于则滚动，否则不滚动。
    var demo=document.getElementById(d1);  
    var demo1=document.getElementById(d2);  
    var demo2=document.getElementById(d3); 
    var Move=null;
    if(Move!=null) clearInterval(Move);//如果定时器不为空，清除定时器对象，防止刷新网页，造成脚本执行错误（自己修改）
  switch (e){
          case 1:
         case 3:
         case "Top":
         case "Bottom":
         case "autoTop":
         case "autoBottom": if(demo.scrollHeight>demo.offsetHeight)  sign=true; break;
         
         case 2:
         case 4:
         case "Left":
         case "Right":
         case "autoLeft":
         case "autoRight": if(demo.scrollWidth>demo.offsetWidth) sign=true; break;

  }
  if(sign) demo2.innerHTML=demo1.innerHTML; 
   
    function boxTop(){ 
          
            if(demo2.offsetTop-demo.scrollTop<=0){demo.scrollTop-=demo1.offsetHeight+space;} 
            else{demo.scrollTop+=space;} 
        } 
    function boxRight(){ 
            
            if(demo.scrollLeft<=0){demo.scrollLeft+=demo2.offsetWidth-space;} 
            else{demo.scrollLeft-=space;} 
        } 
    function boxBottom(){  
         
            if(demo1.offsetTop-demo.scrollTop>=0){demo.scrollTop+=demo2.offsetHeight-space;} 
            else{demo.scrollTop-=space;} 
        } 
    function boxLeft(){
    
            if(demo2.offsetWidth-demo.scrollLeft<=0){demo.scrollLeft-=demo1.offsetWidth+space; 
            } 
            else{demo.scrollLeft+=space;} 
        } 
    if(e==1){ 
            var MoveTop=setInterval(boxTop,speed); 
            demo.onmouseover=function(){clearInterval(MoveTop);} 
            demo.onmouseout=function(){MoveTop=setInterval(boxTop,speed)} 
        } 
    if(e==2){ 
            var MoveRight=setInterval(boxRight,speed); 
            demo.onmouseover=function(){clearInterval(MoveRight)} 
            demo.onmouseout=function(){MoveRight=setInterval(boxRight,speed)} 
        } 
    if(e==3){ 
            var MoveBottom=setInterval(boxBottom,speed); 
            demo.onmouseover=function(){clearInterval(MoveBottom);} 
            demo.onmouseout=function(){MoveBottom=setInterval(boxBottom,speed)} 
        } 
    if(e==4){ 
            var MoveLeft=setInterval(boxLeft,speed) 
            demo.onmouseover=function(){clearInterval(MoveLeft)} 
            demo.onmouseout=function(){MoveLeft=setInterval(boxLeft,speed)} 
        } 
    if(e=="top"){ 
            MoveTop=setInterval(boxTop,speed) 
            obj.onmouseout=function(){clearInterval(MoveTop);} 
        } 
    if(e=="right"){ 
            MoveRight=setInterval(boxRight,speed) 
            obj.onmouseout=function(){clearInterval(MoveRight);} 
        } 
    if(e=="bottom"){ 
            MoveBottom=setInterval(boxBottom,speed) 
            obj.onmouseout=function(){clearInterval(MoveBottom);} 
        } 
    if(e=="left"){ 
            MoveLeft=setInterval(boxLeft,speed) 
            obj.onmouseout=function(){clearInterval(MoveLeft);} 
        } 
       
      //开始自动滚动，相应方向上有按钮控制相反方向滚动事,按钮顺序先左后右，先上后下
      if(e=="autoTop"){ 
       
            if(autoMove)  Move=setInterval(boxTop,speed) ;
            demo.onmouseover=function(){if(autoMove)  clearInterval(Move)} 
            demo.onmouseout=function(){if(autoMove)  Move=setInterval(boxTop,speed)} 
             
           var temp=document.getElementById(obj);  
           if(temp!=null) {
                     temp.onmouseover=function(){ if(Move!=null) clearInterval(Move);  Move=setInterval(boxTop,speed) ;}
                    temp.onmousedown=function(){   space=spaceUpTemp;} //响应按下鼠标加速滚动
                    temp.onmouseup=function(){space=spaceTemp;}  
                    temp.onmouseout=function(){ if(!autoMove)  clearInterval(Move);}   
                   if(!sign) temp.style.display='none'; //如果内容小于外层容器即不滚动，隐藏反方向滚动按钮  
           }
           
           temp=document.getElementById(obj2);  //向下边滚动
            if(temp!=null){ 
                     temp.onmouseover=function(){           
                     if(Move!=null) clearInterval(Move);  
                     Move=setInterval(boxBottoom,speed) ;
                     } 
                     temp.onmouseout=function(){           
                     clearInterval(Move);  
                     if(autoMove) Move=setInterval(boxTop,speed) ;
                     } 
                     temp.onmousedown=function(){   space=spaceUpTemp;} //响应按下鼠标加速滚动
                    temp.onmouseup=function(){space=spaceTemp;} 
                   if(!sign) temp.style.display='none'; //如果内容小于外层容器即不滚动，隐藏反方向滚动按钮   
            } 
       
   } 
    if(e=="autoRight"){                       
            if(autoMove)  Move=setInterval(boxRight,speed) ;
            demo.onmouseover=function(){if(autoMove)  clearInterval(Move)} 
            demo.onmouseout=function(){if(autoMove)  Move=setInterval(boxRight,speed)} 
                        
           temp=document.getElementById(obj);  //向左边滚动
            if(temp!=null){ 
                     temp.onmouseover=function(){           
                      if(Move!=null) clearInterval(Move);  
                     Move=setInterval(boxLeft,speed) ;
                     } 
                     temp.onmouseout=function(){           
                     clearInterval(Move);  
                     if(autoMove) Move=setInterval(boxRight,speed) ;
                     } 
                     temp.onmousedown=function(){   space=spaceUpTemp;} //响应按下鼠标加速滚动
                    temp.onmouseup=function(){space=spaceTemp;}  
                   if(!sign) temp.style.display='none'; //如果内容小于外层容器即不滚动，隐藏反方向滚动按钮  
            }  
            var temp=document.getElementById(obj2);  
           if(temp!=null) {
                     temp.onmouseover=function(){ if(Move!=null) clearInterval(Move);  Move=setInterval(boxRight,speed) ;} 
                     temp.onmousedown=function(){   space=spaceUpTemp;} //响应按下鼠标加速滚动
                    temp.onmouseup=function(){space=spaceTemp;}  
                   temp.onmouseout=function(){ if(!autoMove)  clearInterval(Move);}  
                   if(!sign) temp.style.display='none'; //如果内容小于外层容器即不滚动，隐藏反方向滚动按钮  
           }
    } 
    if(e=="autoBottom"){ 
           if(autoMove) Move=setInterval(boxBottom,speed) ;
            demo.onmouseover=function(){if(autoMove) clearInterval(Move)} 
            demo.onmouseout=function(){if(autoMove) Move=setInterval(boxBottom,speed)} 
                        
           temp=document.getElementById(obj);  //向上边滚动
            if(temp!=null){ 
                     temp.onmouseover=function(){           
                     if(Move!=null) clearInterval(Move);  
                     Move=setInterval(boxTopspeed) ;
                     } 
                     temp.onmouseout=function(){           
                     clearInterval(Move);  
                     if(autoMove)  Move=setInterval(boxBottom,speed) ;
                     } 
                     temp.onmousedown=function(){   space=spaceUpTemp;} //响应按下鼠标加速滚动
                    temp.onmouseup=function(){space=spaceTemp;} 
                   if(!sign) temp.style.display='none'; //如果内容小于外层容器即不滚动，隐藏反方向滚动按钮   
            }  
            var temp=document.getElementById(obj2);  
           if(temp!=null) {
                    temp.onmouseover=function(){  if(Move!=null)  clearInterval(Move);  Move=setInterval(boxBottom,speed) ;} 
                    temp.onmousedown=function(){   space+=spaceUpTemp;} //响应按下鼠标加速滚动
                    temp.onmouseup=function(){space=spaceTemp;}   
                   temp.onmouseout=function(){ if(!autoMove)  clearInterval(Move);}  
                   if(!sign) temp.style.display='none'; //如果内容小于外层容器即不滚动，隐藏反方向滚动按钮  
           }
    } 
    if(e=="autoLeft"){ 
            if(autoMove) Move=setInterval(boxLeft,speed);
            demo.onmouseover=function(){if(autoMove) clearInterval(Move)} 
            demo.onmouseout=function(){if(autoMove) Move=setInterval(boxLeft,speed)} 
             
           var temp=document.getElementById(obj);  
           if(temp!=null) {
                    temp.onmouseover=function(){if(Move!=null) clearInterval(Move);  Move=setInterval(boxLeft,speed) ;}
                    temp.onmousedown=function(){   space=spaceUpTemp;} //响应按下鼠标加速滚动
                    temp.onmouseup=function(){space=spaceTemp;}  
                   temp.onmouseout=function(){ if(!autoMove)  clearInterval(Move);} 
                   if(!sign) temp.style.display='none'; //如果内容小于外层容器即不滚动，隐藏反方向滚动按钮 
           }
           temp=document.getElementById(obj2);  //向右边滚动
            if(temp!=null){ 
                     temp.onmouseover=function(){           
                          if(Move!=null) clearInterval(Move);  
                          Move=setInterval(boxRight,speed) ;
                     } 
                    temp.onmouseout=function(){           
                         clearInterval(Move);  
                         if(autoMove)  Move=setInterval(boxLeft,speed) ;                        
                    }
                    
                    temp.onmousedown=function(){   space=spaceUpTemp;} //响应按下鼠标加速滚动
                    temp.onmouseup=function(){space=spaceTemp;}  
                    if(!sign) temp.style.display='none'; //如果内容小于外层容器即不滚动，隐藏反方向滚动按钮 
            } 
       }  
    } 

