用原生【JavaScript】写【动画】—— 【学习笔记】{ }

封装获取【样式】的函数
function getStyle(obj,name) {
		// IE                                        // 主流  
	return obj.currentStyle ? obj.currentStyle[name] : getComputedStyle(obj,false)[name];
}

1.逐渐变淡 && 向上升

<span id="txt">Fireming</span>
span {
	opacity: 0;
	position: absolute;
}
var span = document.getElementById('txt')

var timer1 = null
var timer2 = null

document.onclick = function(e) {
   	// 每次点击,重置span的透明度为 1
   	span.style.opacity = '1'

   	var mouseX = e.clientX
   	var mouseY = e.clientY
   	
   	// 每次点击,把span移动到鼠标的位置,居中且 span 在鼠标的上方
   	span.style.left = mouseX - span.offsetWidth/2 + 'px' 
   	span.style.top = mouseY - span.offsetHeight + 'px'

   	// 逐渐变淡 且 向上升
   	Fade(span,0,1,10)
   	Move(span,mouseY - 100,1,15)
}

function Fade(obj,to,speed,time) {
   	// 每一次点击都把定时器先关闭,防止动画被加速
	clearInterval(timer1)
	var alpha = obj.style.opacity * 100
	speed = (to / 100) > obj.style.opacity ? speed : (-1*speed)
	timer1 = setInterval(function() {
		if(alpha === to){
			clearInterval(timer1)
			return
		}
		alpha += speed
		obj.style.opacity = alpha / 100
	},time)
}

function Move(obj,to,speed,time){
	// 每一次点击都把定时器先关闭,防止动画被加速
	clearInterval(timer2)
	speed = to > obj.offsetTop ? speed : (-1*speed)
	timer2 = setInterval(function() {
		if(obj.offsetTop === to){
			clearInterval(timer2)
			return
		}
		obj.style.top = obj.offsetTop + speed + 'px'
	},time)
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微风拂晚霞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值