当前位置: 代码迷 >> JavaScript >> JS快讯无缝滚动封装函数
  详细解决方案

JS快讯无缝滚动封装函数

热度:113   发布时间:2013-10-16 11:29:46.0
JS新闻无缝滚动封装函数

?

?

JS新闻无缝滚动封装函数:

?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>新闻滚动</title>
  </head>
  <body>
         <div class="zxfb">
            <strong>新闻滚动</strong>
            <ul>
              <li class="xj_list_bg">
                <div class="xj_cl">最新发布材料</div>
 
              </li>
            </ul>
            <ul id="rolltxt" style="overflow:hidden;height:126px;">
                <li>
                  <div class="xj_cl" title="镜面不锈钢">
                    镜面不锈钢                  </div>
         
                </li>
                <li>
                  <div class="xj_cl" title="测试文字询价">
                    测试文字询价                  </div>
                
                </li>
                <li>
                  <div class="xj_cl" title="混流式通风机">
                    混流式通风机                  </div>
                 
                </li>
                <li>
                  <div class="xj_cl" title="混流式通风机">
                    混流式通风机                  </div>
                  
                </li>
                <li>
                  <div class="xj_cl" title="混流式通风机">
                    混流式通风机                  </div>
                 
                </li>
                <li>
                  <div class="xj_cl" title="低噪声风机箱">
                    低噪声风机箱                  </div>
                  
                </li>
                <li>
                  <div class="xj_cl" title="低噪声风机箱">
                    低噪声风机箱                  </div>
                 
                </li>
                <li>
                  <div class="xj_cl" title="低噪声风机箱">
                    低噪声风机箱                  </div>
                 
                </li>
                <li>
                  <div class="xj_cl" title="吊装式排气扇">
                    吊装式排气扇                  </div>
                 
                </li>
                <li>
                  <div class="xj_cl" title="吊装式排气扇">
                    吊装式排气扇                  </div>
              
                </li>
            </ul>
          </div>
        </div>
      
    <script type="text/javascript" defer="defer">
      /*
       函数功能:实现文字无缝滚动效果
       函数startmarquee的参数:
       lh:文字一次向上滚动的距离或高度;
       speed:滚动间隔时间
       delay:滚动停顿的时间间隔;
      */
      function startmarquee(lh,speed,delay){
        var interval_run;
        var pause = false;
        var scroll_area = document.getElementById("rolltxt");
        scroll_area.innerHTML  += scroll_area.innerHTML;     //复制的目的在于给文字不间断向上滚动提供过渡。
        scroll_area.onmouseover = function(){ pause = true  }; //鼠标滑过,停止滚动;
        scroll_area.onmouseout  = function(){ pause = false }; //鼠标离开,开始滚动;
        scroll_area.scrollTop = 0; //文字顶端与滚动区域顶端的距离,初始值为0;

        function start(){
          interval_run = setInterval(scrolling,speed);
          if(!pause){ scroll_area.scrollTop += 1;}//滚动停止或开始,取决于p传来的布尔值;
        }

        function scrolling(){
          if(scroll_area.scrollTop % lh != 0){//如果不被整除,即一次上移的高度达不到lh,则内容会继续往上滚动;
            scroll_area.scrollTop += 1;
            if(scroll_area.scrollTop >= scroll_area.scrollHeight/2)
              scroll_area.scrollTop = 0;//对象scroll_area中的内容之前被复制了一次,所以它的滚动高度,其实是原来内容的两倍高度;当内容向上滚动到scrollHeight/2的高度时,全部3行文

字已经显示了一遍,至此整块内容scrollTop归0;再等待下一轮的滚动,从而达到文字不间断向上滚动的效果;
            }else{
              clearInterval(interval_run);//否则清除t,暂停滚动
              setTimeout(start,delay);//经过delay间隔后,启动start() 再连续滚动
            }
        }

        setTimeout(start,delay);//第一次启动滚动;setTimeout会在一定的时间后执行函数start(),且只执行一次
      }
      startmarquee(18,30,1000);
      //startmarquee(26,30,3000);
    </script>  
  </body>
</html>

?

  相关解决方案