文字信息与与间歇性无缝滚动的简单Demo

一、Html布局
<body>
  <div id="rollInfo">
    <div id="item"><h3>无缝滚动</h3></div>
    <div id="infoText">
      <ul id="con1">
        <li>1、学会HTML5</li>
        <li>2、学会CSS3</li>
        <li>3、学会写原生Js</li>
        <li>4、学会使用Jquery</li>
        <li>5、学会使用bootstarp</li>
        <li>6、学会Augular</li>
        <li>7、学会Node</li>
        <li>8、学会React</li>
        <li>9、学会Vue</li>
      </ul>
      <ul id="con2"></ul>
    </div>
  </div>
</body>
二、Css样式
<style>
  body,h3,ul{
    margin:0;
    padding: 0;
  }
  ul{
    list-style: none;
  }
  #rollInfo{
    width: 400px;
    height: 300px;
    margin:0 auto;
    margin-top: 30px;
    border: 1px solid #ccc;
    border-radius: 5px;
  }
  #item{
    width: 100%;
    height: 100px;
    background: pink;
    border: 2px solid #ddd;
    text-align: center;
  }
  #item h3{
    display: inline-block;
    margin:10% 0px;
  }
  #infoText{
    text-align: center;
    background: #e3c06e;
    height:200px;
    width: 100%;
    overflow: hidden;
    /*超出部分隐藏 一定要加*/
  }
  #infoText li{
    height: 40px;
    /*单条信息的高度*/
  }
</style>
三、Js部分
  • 无缝滚动
<script>
  window.onload = function(){
    var area = document.getElementById("infoText");
    var con1 = document.getElementById("con1");
    var con2  = document.getElementById("con2");
    //要实现无缝滚动 必须clone一份滚动的内容
    con2.innerHTML = con1.innerHTML;
    function scrollUp(){
      if(area.scrollTop >= con1.offsetHeight){
        area.scrollTop = 0;
      }else{
        area.scrollTop++;
      }
    }
    var myScroll =setInterval(scrollUp,50);
    //鼠标悬停
    area.onmouseover = function(){
      clearInterval(myScroll);
    }
    area.onmouseout = function(){
      myScroll =setInterval(scrollUp,50);
      //不能再使用 var myScroll 定义setInterval
      //这样每次移出都会打开新的定时器
    }
  }
</script>

  • 间歇滚动
<script>
  window.onload = function(){
    var area = document.getElementById("infoText");
    var con1 = document.getElementById("con1");
    var con2  = document.getElementById("con2");
    con2.innerHTML = con1.innerHTML;
    要实现无缝滚动 必须clone一份滚动的内容
    area.scrollTop = 0;
    var iLiHeight = 40;//滚动距离 目前等于单条信息高度
    var speed = 50;//滚动速度
    var delay = 2000;//滚动的间歇时间
    var timer;

    function startMove(){
      area.scrollTop++;
      timer =setInterval(scrollUp,speed);
    }

    function scrollUp(){
        if(area.scrollTop%iLiHeight == 0){
          //如果滚动高度等于信息高度的整数倍
          clearInterval(timer);
          setTimeout(startMove,delay);
        }else{
          area.scrollTop++;
          if(area.scrollTop >= area.scrollHeight/2){
            //area.scrollHeight/2的值等于con1.offsetHeight
            area.scrollTop = 0;
          }
        }
    }
    setTimeout(startMove,delay);//初始化
  }
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这是一个慕课网的实例:感谢vivain老师现在看一下吧第一次,我实现了滚动<!DOCTYPE html> ...
    青木川_阅读 639评论 0 0
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,321评论 1 10
  • bug修复版2017.07.11 js替代marquee实现图片无缝滚动可能大家都碰到过,当marquee中滚动的...
    巩小白阅读 739评论 0 4
  • 我们首先要明白,我们给页面添加效果用到的js到底是什么?js其实包含三部分:dom 文档对象模型 bom 浏览...
    一直以来都很好阅读 878评论 0 0
  • 1. tab列表折叠效果 html: 能源系统事业部 岗位名称: 工作地点 岗位名...
    lilyping阅读 2,015评论 0 1

友情链接更多精彩内容