Web前端——信息滚动marquee

2017-04-18  本文已影响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样式,可以更改,显示的行数。

上一篇下一篇

猜你喜欢

热点阅读