替换"marquee",实现无缝滚动

摘要:
js的marquee标签可以实现元素的循环滚动,但不能无缝连接。要达到“无缝滚动”的效果,必须使用js(参考百度)。其目的是使要滚动的元素的相对位置不断变化。上下滚动是相对于上下滚动,左右滚动是左右滚动。接下来是实现方法:实现li标签上下无缝滚动,不用说,粘贴代码,它可以直接运行<!DOCTYPEhtml>&书信电报;小时

  js的marquee标签,可以实现元素循环滚动,但是不能无缝连接,要实现“无缝滚动”的效果必须使用js(借鉴百度),思路是使要滚动元素相对位置不断改变,上下滚动就相对top或者bottom,左右滚动就是left或者right,接下来是实现方法:实现li标签上下无缝滚动

  废话少说,粘贴代码,可以直接运行。

                    
<!DOCTYPE html>
<html>
  <head>
    <title>测试滚动</title>
    <!-- 引入在线Jquery -->
    <script src="http://code.jquery.com/jquery-latest.js"></script>
  </head>
  <style>
    #marquee li {
    height: 30px;
   }
  </style>

<body>
  <div style="height:180px;overflow:hidden;">
    <div id="marquee">
      <li>
        <span>1.水规院自动化码头设计关键技术研究工作交流会顺利召开</span>
      </li>
      <li>
        <span>2.巨型通航建筑物通航标准体系研究</span>
      </li>
      <li>
        <span>3.中交集团跃居世界500强第210位</span>
      </li>
      <li>
        <span>4.中交股份获评多项长江口深水航道治理工程建设先进</span>
      </li>
      <li>
        <span>5.海南省与中交股份将全方位合作</span>
      </li>
      <li>
        <span>6.长江船舶设计院获中国标准创新贡献一等奖</span>
      </li>
    </div>
  </div>
</body>
<script>
  window.onload = function () {
    scrolldiv();
    // 鼠标停留,离开
    $("#marquee").mouseenter(function () {
      window.clearInterval(timename);
   });
    $("#marquee").mouseleave(function () {
      timename = setInterval("doScroll()", 50);
});
}
  var marquee = document.getElementById("marquee");
  var offset = 0;
  var scrollheight = marquee.offsetHeight;
  var length = marquee.children.length;
  function scrolldiv() {
    // 不可见处增加同等数量的li元素,模拟无缝连接(实际应该最上面li元素
    // 滚动到不可见之后,删除最上面li元素,再给div末尾添加删除的li元素)
    for (vari = 0; i < length - 1; i++) {
      var node = marquee.children[i].cloneNode(true);
      marquee.appendChild(node);
  }
    // 执行滚动,利用margin-top
    timename = setInterval("doScroll()", 50);
}
  function doScroll() {
    if (offset == scrollheight) {
      offset = 0;
}
    marquee.style.marginTop = "-" + offset + "px";
    offset += 1;
}
</script>
</html>

 核心思路:1.增加可见高度的元素(appendChild)。

        2.定时刷新margin-top使div上移模拟滚动。

 以上技术参考其他人,如有侵权,欢迎来电。

 

免责声明:文章转载自《替换"marquee",实现无缝滚动》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SSIS 学习(2):数据流任务(上)【转】hdu 4651 Partition (利用五边形定理求解切割数)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Marquee 使用方法详解

实例:  <marquee behavior="scroll" bgcolor="#FF0000" direction="up" hspace="50" vspace="20" loop="-1" scrollamount="10" scrolldelay="100" onMouseOut="this.start()" onMouseOver="...

marquee标签对详解

  该标签不是HTML3.2的一部分,并且只支持MSIE3以后内核,所以如果你使用非IE内核浏览器(如:Netscape)可能无法看到下面一些很有意思的效果 该标签是个容器标签 语法:  <marquee></marquee> 以下是一个最简单的例子: 代码如下: <marquee><font size=+3...

图片四个方向无缝循环滚动代码

HTML <div id=demo style=”overflow:hidden; 128px; height:300px;”><div id=demo1><img src=”gfjs.gif”><br><img src=”bxtt.gif”><br><img src=”bzjd...

HTML快速入门3

四、表格 (Table) 1.表格的基本形式 表由 <table> 开始, </table> 结束,表的内容由 <tr>,<th> 和 <td> 定义。 l<tr>说明表的一个行,表有多少行就有多少个 <tr> ; l<th>说明表的列数和相应栏目的名称(列标...

网页HTML代码大全

1.结构性定义 文件类型 <HTML></HTML> (放在档案的开头与结尾) 文件主题 <TITLE></TITLE> (必须放在「文头」区块内) 文头 <HEAD></HEAD> (描述性资料,像是「主题」) 文体 <BODY></BODY> (文件本体)...