原生js实现文字无缝滚动,速度可自行定义

前端时间工作中遇到一个文字无缝滚动的需求,于是自己研究了很久,写了一个小的demo,可以直接拿走用。

适用场景很广泛,如有需求,可来这里拿代码。

一、html代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>文字无缝滚动</title>
	<style>
		*{
			margin: 0;
			padding: 0
		}
		#wrapper{
			overflow:hidden;
			height:30px;
			width:500px;
			background:#ccc;
			color:#006600;
			margin: 100px auto;
			text-align: center;
		}
	</style>
</head>
<body>
	    <div id="wrapper">  
		<div id="demo1">  
			<p>恭喜 手机号为176****5610 的用户喜获 100元 现金券</p>  
			<p>恭喜 手机号为176****5610 的用户喜获 100元 现金券</p>  
			<p>恭喜 手机号为176****5610 的用户喜获 100元 现金券</p>  
			<p>恭喜 手机号为176****5610 的用户喜获 100元 现金券</p>  
			<p>恭喜 手机号为176****5610 的用户喜获 100元 现金券</p>  
			<p>恭喜 手机号为176****5610 的用户喜获 100元 现金券</p>  
			<p>恭喜 手机号为176****5610 的用户喜获 100元 现金券</p>  
			<p>恭喜 手机号为176****5610 的用户喜获 100元 现金券</p>  
			<p>恭喜 手机号为176****5610 的用户喜获 100元 现金券</p>  
			<p>恭喜 手机号为176****5610 的用户喜获 100元 现金券</p>  
			<p>恭喜 手机号为176****5610 的用户喜获 100元 现金券</p>  
			<p>恭喜 手机号为176****5610 的用户喜获 100元 现金券</p>  
			<p>恭喜 手机号为176****5610 的用户喜获 100元 现金券</p>  
			<p>恭喜 手机号为176****5610 的用户喜获 100元 现金券</p>  
		</div>  
		<div id="demo2">
		</div>  
	</div>
</body>
</html> 

二、js代码如下:

<script>  
	var speed = 80;  // 可自行设置文字滚动的速度
	
	var wrapper = document.getElementById('wrapper');
	var demo1 = document.getElementById('demo1');
	var demo2 = document.getElementById('demo2');

	demo2.innerHTML=demo1.innerHTML   //克隆demo1为demo2  
	function Marquee(){  
		if(demo2.offsetHeight-wrapper.scrollTop<=0)  //当滚动至demo1与demo2交界时  
			wrapper.scrollTop-=demo1.offsetHeight    //demo跳到最顶端  
		else{  
			wrapper.scrollTop++   //如果是横向的 将 所有的 height top 改成 width left  
		}  
	}  
	
	var MyMar=setInterval(Marquee,speed)  //设置定时器  
	wrapper.οnmοuseοver=function() {clearInterval(MyMar)}   //鼠标移上时清除定时器达到滚动停止的目的  
	wrapper.οnmοuseοut=function() {MyMar=setInterval(Marquee,speed)}  //鼠标移开时重设定时器  
</script> 

三、如果大家有什么意见或建议,可直接联系我修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值