【自学笔记】js JavaScript callback()执行线性动画

本文介绍如何使用原生JavaScript实现动画的连续播放效果,并通过回调函数确保动画按序进行。对比了jQuery与原生JS实现动画回调的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

才入门不久,要写动画的连贯发生,在jQuery中实现很简单,直接回调函数即可。

    // 回调处理
    $('button:first').click(function() {
        $("#block1").animate({
            width: "50%"
        }, 2000, function() {  // 嵌套回调
            $("#block2").animate({
                width: "50%"
            }, 2000);
        });
    });

结果为第一个块缩减到50% 后,第二个才开始缩减;
这里写图片描述
但是用原生js来写,则要用到callback;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
#div1{
    position:absolute;
    width:50px;
    height:50px;
    left:10%;
    background-color:#FF0;
}
</style>
</head>
<body>
<div id="div1"></div>
<script type="text/javascript">
var div1 = document.getElementById("div1");
function a(callback,time) // 第一个参数为回调的函数,第二个则为过滤动画执行时间
{    
div1.style.left = 40 + '%';
div1.style.transitionProperty = 'all';
div1.style.transitionDuration = time + 'ms';
div1.style.transitionTimingFunction = 'linear';
setTimeout(callback,time);
} 
function b(){ 
 div1.style.width = 200 + 'px';
}  
} 
 window.onload = function () 
{ 
a(b,3000);
} 
</script>
</body>
</html>

结果为一个小块先移动到40%处,然后再开始生长。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值