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",实现无缝滚动的更多相关文章

  1. marquee横向无缝滚动无js

    <!DOCTYPE html><html><head><meta charset="utf-8"> <title>< ...

  2. marquee上下无缝滚动

    <!DOCTYPE html><html><head><meta charset="utf-8"><meta name=&qu ...

  3. marquee图片无缝拼接滚动

    marquee图片无缝滚动 先了解一下对象的几个的属性: innerHTML:     设置或获取位于对象起始和结束标签内的 HTML scrollHeight: 获取对象的滚动高度. scrollL ...

  4. JS 在 HTML 无缝滚动

    marquee图片无缝滚动先了解一下对象的几个的属性:innerHTML: 设置或获取位于对象起始和结束标签内的 HTMLscrollHeight: 获取对象的滚动高度.scrollLeft: 设置或 ...

  5. marquee标签实现跑马灯效果--无缝滚动

    今天在做微信端的大转盘抽奖时,想把所有用户的抽奖记录做成无缝滚动的效果,无奈我的js功底太差,一时想不出实现的方法,便百度各种相似效果.但无意中发现了一个html标签——<marquee> ...

  6. vue 自定义marquee无缝滚动组件

    先上效果图: (1) 看起来可能有点卡顿,但是实际上页面上看起来挺顺畅的. (2) 思路就是获取每一个列表的宽度,设置定时器移动列表,当移动的距离达到一个列表的宽度的时候,把这个距离放到数组的最后.这 ...

  7. 信息无缝滚动效果marquee

    横向滚动.纵向滚动 1. 解决滚动的空白 向左向右滚动的话,可以根据父级定位left,每次加或者减可以使物体向左或右运动,用top也可以实现向上或向下运动 上下滚动实现无缝滚动1. innerHTML ...

  8. JQuery的无缝滚动

    图片无缝向左滚动的代码如下:   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...

  9. JS 阶段小练习~ 无缝滚动

    结合下学了的知识,做个模拟的综合性扩展练习~~  大致功能如下: 1.点开html后,图片自动移动展示 2.点击左右方向,可以改变 图片移动的方向(改变left的值,正负) 3.鼠标移入移出图片后,图 ...

随机推荐

  1. splinter操作ie浏览器

    splinter 是在selenium上的封装,很多操作更方便,但是默认似乎不能直接操作ie,通过修改browser.py文件,splinter\driver\webdriver下增加ie.py文件, ...

  2. Python之反射机制

    什么是反射? 1.有时我们要访问某个变量或是方法时并不知道到底有没有这个变量或方法,所以就要做些判断.判断是否存在字符串对应的变量及方法.2.我们知道访问变量时是不能加引号的,否则会被当成字符串处理. ...

  3. Python开发【第三篇】数据类型

    1.数字类型 int 整数 1 2 3 float 浮点数 1.1 0.9 0.99 complex 复数 (2+0j) str 字符串 'hello world' "hello world ...

  4. Dropzone.js

    2015-11-25 发布 DropzoneJS 官网没有中文版的,很多东西只能跟着自己的感觉去理解,有些地方把握不了是否准确,在网上搜了一下中文版,看到一位大神简易的中文版 个人觉得和原官网对比着看 ...

  5. 提权案例(一)渗透某asp.net网站通过sql server数据库public 提权 思路分享

    先罗列出sql server 角色用户的权限 按照从最低级别角色(bulkadmin)到最高级别角色(sysadmin)的顺序进行描述:1.bulkadmin:这个角色可以运行BULK INSERT语 ...

  6. ride.py 启动报错

    报错问题: C:\Users\iphauser>ride.py Traceback (most recent call last): File , in OnInit self._plugin_ ...

  7. python- = 与 ==的区别

    一个等号代表的含义是赋值,将某一数值赋给某个变量,比如a=3,将3这个数值赋予给a. 两个等号是判断是否相等,返回True或False,比如1==1.他们是相等的,那么就返回true.1==2,他们是 ...

  8. NOIP2018提高组初赛游记

    AH省的,好像水军多,走的都比较早(莫非是真·大佬!!) 本人考了71,较去年退步了.(去年还考80多的来着) 题目坑.. 第一.二大题选择 第三题年份,看了试卷标题,第二十二届,算出来后没有这个选项 ...

  9. dapper之连接数据库(Oracle,SQL Server,MySql)

    因为项目需求,需要项目同时可以访问三个数据库,因此本人经过一番研究,得出以下代码. 1.建立公共连接抽象类(DataBase) public abstract class DataBase { /// ...

  10. redis之管道

    Redis 的消息交互当我们使用客户端对 Redis 进行一次操作时,如下图所示,客户端将请求传送给服务器,服务器处理完毕后,再将响应回复给客户端.这要花费一个网络数据包来回的时间. 如果连续执行多条 ...