JS-信息滚动效果

<marquee>标签实现信息滚动
1. behavior滚动的方式
   alternate:表示在两端之间来回滚动
   scroll:表示由一端滚动到另一端,会重复
   slide:表示由一端滚动到另一端,不会重复
2. direction滚动的方向down、up、left、right
3. loop滚动的次数(当loop=-1表示一直滚动下去,默认为-1)
4. scrollamount设定活动字幕的滚动速度
5. scrolldelay设定活动字幕滚动两次之间的延迟时间

文字信息无缝滚动
无缝滚动:当内容滚完之后,不想让它停止,也不让它空白。
说明:蓝色为显示区域,橘黄色为要滚动的内容
无缝滚动原理:
原始内容为1,克隆内容为2
当原始内容底部到达可视区的底部时,重新克隆出原始内容2,2在紧接在1的后面
当1的内容滚出可视区,2的内容到达可视区的顶部时,此刻就开始了无缝滚动
<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;
 function scrollUp(){
	 if(area.scrollTop >= con1.scrollHeight) {
		 area.scrollTop = 0;
		 }else{
		   area.scrollTop ++; 
		 } 
}
var myScroll = setInterval("scrollUp()",speed);
area.onmouseover = function(){
	 clearInterval(myScroll);
	}
area.onmouseout = function(){
	 myScroll = setInterval("scrollUp()",speed);
	}
 </script>


知识点
1、innerHTML
2、scrollTop(向上滚动的数值)
3、offsetHeight(元素自身的高度)
4、setInterval()(执行的方法)
5、clearInterval()(清除执行的方法)
添加鼠标悬停事件:
  onmouseover --> clearInterval
  onmouseout --> setInterval

间接性滚动原理
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
area.innerHTML+=area.innerHTML完成克隆
<script type="text/javascript">
 var area =document.getElementById('moocBox');
 var iLiHeight = 24;
 area.innerHTML+=area.innerHTML;
 area.scrollTop = 0;
 var speed= 30;
 var delay = 1000;
 var time ;
 function startMove()
 {
    area.scrollTop++;
    time = setInterval("scrollUp()",speed);
 }
 function scrollUp()
 {
 	//area.scrollTop++;
    if (area.scrollTop%iLiHeight ==0) 
    {
       clearInterval(time);
       setTimeout("startMove()",delay);
    }else{
    	area.scrollTop++;
    	if(area.scrollTop>=area.scrollHight/2){
    		area.scrollTop=0;
    	}
    }
 }
 setTimeout("startMove()",delay);//初始化
 </script>


间歇循环滚动
1、设置需要滚动的行高:
    var h = lineHeight * n;
2、当滚动高度整除行高时,停止滚动:
    if(scrollTop % h == 0) clearInterval(...);
     等待m秒后再滚动:
    setTimeout("scrollTop++; setInterval(...)", delay);
3、当内容已滚动出可视区时,重置scrollTop:
    if(scrollTop >= scrollHeight) scrollTop = 0;
4、初始调用一次setTimeout,以开始运动





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值