
function slideLine(ul, delay, speed, lh) {
    var slideBox = (typeof ul == 'string')?document.getElementById(ul):ul; //slideBox 的值 如果UL的数据类型为字符串,则该值为UL对象.这是一个三元表达式.
    var delay = delay||1000, speed=speed||20, lh = lh||20; //这里为了防止赋空值,采用了逻辑运算,既如果||运算中delay有值,则取delay,如值为空,则取默认的1000.
    var tid = null, pause = false;
    var start = function() {
        tid=setInterval(slide, speed);  //这里定义TID的值为定时执行SLIDE变量.既运行SLIDE函数.speed为滚动速度
    }
    var slide = function() {  //这里通过给变量赋值,让变量成为1个函数.
        if (pause) return;   //这里通过判断PAUSE的布尔值来决定是否继续运行下面的代码,如布尔值为TRUE 则停止运行语句后面的函数体.
        slideBox.scrollTop += 2;  //这里将滚动条的高度累加,这决定了滚动的高度.即每次滚动2个像素.
        if (slideBox.scrollTop % lh == 0) {  //这里通过计算滚动条高度来计算是否停止滚动.这里是一个取余运算,如果滚动条高度的值除每行的高度余为0的话则执行下面的语句.
            clearInterval(tid);   //这里清除定时运行的TID函数.即让滚动停止的效果.
            slideBox.appendChild(slideBox.getElementsByTagName('li')[0]);//ul在这里就是把第一个li移至到末尾
            slideBox.scrollTop = 0;
            setTimeout(start, delay); //这里通过定时再次运行滚动函数START.START的函数则继续运行本函数,实现循环.delay为延时.
        }
    }
    slideBox.onmouseover=function(){pause=true;} //通过ONMOUSEOVER事件为PAUSE赋值,即当鼠标移动在列表上事,表现的效果为停止滚动.
    slideBox.onmouseout=function(){pause=false;}
    setTimeout(start, delay);  //通过定时第一次运行START函数.
}
try{
  slideLine('slidetexts', 1000,30,120);
}catch(e) {}


