动画原理与setInterval函数封装

在这里插入图片描述
如图所示,本次想做盒子的定时移动,第一个盒子以每50ms,第二三个盒子以每10ms向左移动一个像素。
样式上需将盒子绝对定位,以便后续能改变盒子的left值使其移动。
javascript上需监听其offsetleft值,并通过left修改其位置。
注意一般情况下clearInterval都写在setInterval中,以便定时检测是否达到取消定时器的条件。
代码如下

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<style type="text/css">
			.w{
				width: 100px;
				height: 60px;
				margin-top: 20px ;
				position:absolute;
				left: 0;
			}
			.one{
				background-color: aqua;
				top: 20px;
			}
			.two{
				background-color: aquamarine;
				top: 100px;
			}
			.three{
				background-color: #00FFFF;
				top: 180px;
			}
		</style>
	</head>
	<body>
		<div class="one w">1</div>
		<div class="two w">2</div>
		<div class="three w">3</div>
		<script>
			var one=document.querySelector('.one');
			var two=document.querySelector('.two');
			var three=document.querySelector('.three');
			var time=setInterval(function(){
				one.style.left=one.offsetLeft+1+'px';
				if(one.offsetLeft>=400){
					clearInterval(time);
				}
			},30);
			function kind(ele,tim){
				var timer=setInterval(function(){
					ele.style.left=ele.offsetLeft+1+'px';  
/*ele.offsetLeft>=400 ele.style.left>='400px' */
					if(ele.offsetLeft>=400){
						clearInterval(timer);
					} 
				},tim);
			}
			kind(two,10);
			kind(three,10);
		</script>
	</body>
</html>


问题
ele.style.left>=‘400px’
不知道此不等式哪里有问题。。
按理来说如果一开始有通过行内样式给left赋值,后期应该能通过ele.style.left查询到其值。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用`setInterval`函数来实现倒计时动画,具体实现方法如下: 首先,需要设置一个初始时间和一个倒计时结束时间。然后,使用`setInterval`函数循环执行一个函数,该函数将会在每个一定的时间间隔内被调用。 在该函数内部,可以获得当前时间,并计算出还有多少时间剩余。然后,根据剩余时间来更新倒计时的显示,并在时间到达结束时间时停止计时器。 以下是一个简单的示例代码: ```javascript // 设置初始时间和结束时间 const startTime = new Date().getTime(); const endTime = startTime + 100000; // 获取页面中的倒计时元素 const countdown = document.querySelector('.countdown'); // 定义倒计时函数 function updateCountdown() { const currentTime = new Date().getTime(); const remainingTime = endTime - currentTime; // 计算剩余时间的分钟和秒数 const minutes = Math.floor(remainingTime / (1000 * 60)); const seconds = Math.floor((remainingTime % (1000 * 60)) / 1000); // 更新倒计时的显示 countdown.innerHTML = `${minutes}:${seconds.toString().padStart(2, '0')}`; // 如果时间到达结束时间,停止计时器 if (remainingTime <= 0) { clearInterval(countdownInterval); countdown.innerHTML = 'Time Up!'; } } // 使用setInterval函数调用倒计时函数 const countdownInterval = setInterval(updateCountdown, 1000); ``` 在该示例代码中,我们首先获取了页面中的倒计时元素,并设置了初始时间和结束时间。然后,我们定义了一个`updateCountdown`函数,在函数内部计算剩余时间并更新倒计时的显示。最后,我们使用`setInterval`函数来循环调用该函数,直到时间到达结束时间时停止计时器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值