跑马灯(字幕水平滚动)的两种实现方式

来源:互联网 发布:蜂群算法 编辑:程序博客网 时间:2024/05/22 10:28
  • js实现
<!DOCTYPE html><html lang="zh-CN">  <head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>    <style>      *{        margin: 0px;        padding: 0px;      }      .scroll-bar{        width: 100%;        overflow: hidden;      }      .scroll-content{        display: inline-block;        white-space : nowrap;      }      input{        margin-left: 100px;      }    </style>  </head>  <body>    <div class="scroll-bar">      <div class="scroll-content">        床前明月光,疑是地上霜。举头望明月,低头思故乡。      </div>    </div>    <input type="text" name="" value="">  </body>  <script type="text/javascript" src="jquery-3.0.0.min.js"></script>  <script type="text/javascript">    var interval = null;    var contentWidth = $(".scroll-content").width();    $(function(){      $(".scroll-content").css("margin-left",0-contentWidth);      startScroll();      $(".scroll-content").mouseover(function(){        console.log("mouseover;");        clearInterval(interval);      });      $(".scroll-content").mouseout(function(){        console.log("mouseout;");        startScroll();      });    });    function startScroll(){      var offset = parseFloat($(".scroll-content").css("margin-left"));      interval = setInterval(function(){        if (offset <= document.body.clientWidth) {          offset = offset + 10;          $(".scroll-content").css("margin-left",offset);        }else{          offset = 0-contentWidth;        }      },100);    }  </script></html>

以上为js实现的跑马灯效果,支持google、firefox和ie,不过在ie上有一个bug就是input输入框的光标闪烁很不稳定,有时候正常,有时候过快,有时候没有。

  • marquee标签实现
<!DOCTYPE html><html lang="zh-CN">  <head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>    <style>      *{        margin: 0px;        padding: 0px;      }      .scroll-bar{        width: 100%;      }      input{        margin-left: 100px;      }    </style>  </head>  <body>    <div class="scroll-bar">      <marquee direction="right" onMouseOut="this.start();" onMouseOver="this.stop();">          床前明月光,疑是地上霜。举头望明月,低头思故乡。      </marquee>    </div>    <input type="text" name="" value="">  </body>  <script type="text/javascript" src="jquery-3.0.0.min.js"></script></html>

以上为marquee标签实现的跑马灯效果,不过marquee标签已被html5遗弃,虽然marquee在google、firefox和ie中都有效,但onMouseOut=”this.start();” onMouseOver=”this.stop();”在firefox中会报错。

0 0
原创粉丝点击