简单JS实现走马灯效果的文字(无需jQuery)

…衆ロ難τιáo~ 提交于 2020-03-26 12:17:18

效果类似:(抱歉,图片是静态的)

9-21-2009 11-34-09

写一段html,需要走马灯上下跳动的内容,但每次只显示一行:

<hr size="0" align="center" style="border-top: 1px solid #F5F5F5;"/>
<div id="marqueebox0" style="overflow: hidden; height: 26px; line-height: 26px; font-size: 14px;">
   •
   <a href="/"  target="_blank">测试第一行</a>
   <br/>
   •
   <a href="/"  target="_blank">测试第二行</a>
   <br/>
   •
   <a href="/"  target="_blank">测试第三行</a>
   <br/>
   •
   <a href="/"  target="_blank">测试第四行</a>
   <br/>
   •
   <a href="/" target="_blank">测试第五行</a>
   <br/>
</div>

 

实现走马灯效果的简单JS:

/*开始走马灯*/
function startmarquee(lh/*line-height*/,speed/*50*/,delay/*3000*/,id/*element id*/){
  var t;
  var p=false;
  var o=document.getElementById(id);
  o.innerHTML+=o.innerHTML;
  o.onmouseover=function(){p=true}
  o.onmouseout=function(){p=false}
  o.scrollTop = 0;
  function start(){
    t=setInterval(scrolling,speed);
    if(!p) o.scrollTop += 2;
  }
  function scrolling(){
    if(o.scrollTop%lh!=0){
    o.scrollTop += 2;
    if(o.scrollTop>=o.scrollHeight/2) o.scrollTop = 0;
    }else{
    clearInterval(t);
    setTimeout(start,delay);
    }
  }
  setTimeout(start,delay);
}

/*启动效果*/
try{
startmarquee(26,50,3000,"marqueebox0");
}catch(e){}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!