美文网首页
Web前端——信息滚动marquee

Web前端——信息滚动marquee

作者: 艳晓 | 来源:发表于2017-04-18 17:21 被阅读503次

    一、<marquee>标签基础知识

    <marquee>标签是用来做滚动效果的标签,随着html5的大量使用,<marquee>应用越来越少
    <marquee>标签的五种属性
    1、behavior 滚动的方式
    alternate在两端间来回滚动
    scroll从一端滚到另一端,重复执行a->b,a->b,a->b.......
    slide从一端滚到另一端,停止
    2、direction 滚动方向 down up left right
    3、loop 滚动次数,默认是-1,无限期滚动
    4、scrollamount 设置活动字幕的滚动速度
    5、scrolldelay 两次滚动之间的时间间隔
    6、常用方法onmouseover="this.stop();" onmouseout="this.start();"鼠标放上停止,移开继续,stop()和start()是系统方法,所以我们可以直接调用

    二、滚动简单效果

    <title>HTML文字滚动效果</title>
    <style>
    *{
        margin:0;
        padding:0;
    }
    .box{
        width:500px;
        border:3px solid #ccc;
        margin:50px auto 0;
        padding:10px;
    }
    dl,dt{
            list-style:none;
    }
    dl dt{
        line-height:24px;
        font-size:16px;
        font-weight:bold;
        color:#000;
     }
    </style>
    </head>
    <body>
    <div class="box">
    <dl>
      <dt>文字滚动示例(默认):</dt>
     // onmouseover="this.stop();" onmouseout="this.start();"鼠标放上停止,移开继续,stop()和start()是系统方法
      <dd><marquee onmouseover="this.stop();" onmouseout="this.start();">我默认向左滚。。。。。</marquee></dd>
    </dl>
    <dl>
      <dt>文字滚动示例(向右):</dt>
      <dd><marquee direction="right" scrolldelay="50">我向右滚动。。。。</marquee></dd>
    </dl>
    <dl>
      <dt>文字滚动示例(默认方向,滚动方式为alternate,循环3次,速度为2):</dt>
      <dd><marquee scrollamount="2" behavior="alternate" loop="3">我来回滚动。。。。    </marquee></dd>
    </dl>
    <dl>
      <dt>文字滚动示例(向上,背景色为#CCFF66,设置了背景宽度和高度):</dt>
      <dd><marquee direction="up"  bgcolor="#CCFF66" width="250" height="55">我在区域内滚动,向上哟。。。。</marquee></dd>
    </dl>
    
    </div>
    </body>
    

    三、无缝滚动

    基础知识点
    1、innerHTML
    con2.innerHTML = con1.innerHTML;//让con2复制con1内容,con2的存在是为了填补空白
    2、setInterval
    3、clearInterval
    4、scrollTop
    scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 (即网页被卷去的高)
    5、offsetHeight

    <body>
    <!--  慕课网课程公告开始 -->
    <div  id="mooc"> 
    <!--  头部 -->
    <h3 id="moocTitle">最新课程<a href="#" target="_self">更多>></a> </h3>
    <!--  头部结束 --> 
    <!--  中间 -->
    <div  id="moocBox">
        <ul id="con1">
            <li><a href="#">1.学会html5 绝对的屌丝逆袭(案例)</a><span>2013-09-18</span></li>
            <li><a href="#">2.tab页面切换效果(案例)</a><span>2013-10-09</span></li>
            <li><a href="#">3.圆角水晶按钮制作(案例)</a><span>2013-10-21</span></li>
            <li><a href="#">4.HTML+CSS基础课程(系列)</a><span>2013-11-01</span></li>
            <li><a href="#">5.分页页码制作(案例)</a><span>2013-11-06</span></li>
            <li><a href="#">6.导航条菜单的制作(案例)</a><span>2013-11-08</span></li>
            <li><a href="#">7.信息列表制作(案例)</a><span>2013-11-15</span></li>
            <li><a href="#">8.下拉菜单制作(案例)</a><span>2013-11-22</span></li>
            <li><a href="#">9.如何实现“新手引导”效果</a><span>2013-12-06</span></li>
        </ul>
        <ul id="con2">
        </ul>
    </div>
    <!--  中间结束 --> 
    </div>
    <!--  慕课网课程公告结束 --> 
    
    <script type="text/javascript">
     var area = document.getElementById('moocBox');
     var con1 = document.getElementById('con1');
     var con2 = document.getElementById('con2');
     var speed = 50;
     area.scrollTop = 0;
     con2.innerHTML = con1.innerHTML;//让con2复制con1内容,con2的存在是为了填补空白
     function scrollUp(){
        // 当area的滚动高度和con1.scrollHeight高度相等时,回到初始高度;如果没有,继续++
         if(area.scrollTop >= con1.scrollHeight) {
             area.scrollTop = 0;
             }else{
               area.scrollTop ++; //
             } 
    }
    var myScroll = setInterval("scrollUp()",speed);
    // 移入移除效果
    // 鼠标滑过,停止滑动,停止定时器
    // 鼠标移除,继续滑动,启动定时器
    area.onmouseover = function(){
         clearInterval(myScroll);
        }
    area.onmouseout = function(){
        // setInterval第一个参数可以是函数也可以是表达式,第二个事件间隔
         myScroll = setInterval("scrollUp()",speed);
        }
     </script>
    </body>
    </html>
    
    屏幕录制.gif

    四、单行滚动

    setTimeout(表达式,延迟时间)执行时,在载入后,延迟一段时间(以毫秒计)后,执行表达式,只执行一次
    setInterval(表达式,交互时间)每隔一个指定时间(以毫秒计),执行一次表达式,循环执行直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

    <script type="text/javascript">
     var area = document.getElementById('moocBox');
     var iliHeight = 24;//单行滚动的高度
     var speed = 50;//滚动的速度50毫秒
     var time;
     var delay= 2000;//延迟时间两秒
     area.scrollTop=0;
     area.innerHTML+=area.innerHTML;//克隆一份一样的内容
     function startScroll(){
         time=setInterval("scrollUp()",speed);
         area.scrollTop++;
         }
     function scrollUp(){
        // 当滚动整一行时,清除定时器,然后延时两秒再继续执行
         if(area.scrollTop % iliHeight==0){
             clearInterval(time);
             setTimeout(startScroll,delay);
             }else{
                 area.scrollTop++;
                 if(area.scrollTop >= area.scrollHeight/2){
                         area.scrollTop =0;
                         }
                     }
         }
         setTimeout(startScroll,delay)
     </script>
    

    其他情况:
    1、通过设置滚动高度var iliHeight = 24;可以显示,一次滚动几行。
    2、通过设置moocBox这个div的css样式,可以更改,显示的行数。

    相关文章

      网友评论

          本文标题:Web前端——信息滚动marquee

          本文链接:https://www.haomeiwen.com/subject/ygtqzttx.html