CSS动画的停止与监听

      CSS动画的扩展性、易用性与性能都远超JS动画,但其可控制性(启动、暂停、重新启动)、生命周期的监听都远不如JS动画那么强大,但充分利用元素的style、class特性依旧可实现CSS动画的停止功能,并能利用新增的”transitionend”事件监听到动画何时结束。

      假定页面中存在如下HTML片段。

<button id="btnTrans">转变</button>
<button id="btnStop">停止</button>
<div class="container">
    <a class="banner" href="#">Hello,World!</a>
</div>

      给元素添加动画样式并添加动画终止状态。

 .banner {
    font-size : 12px;
    transition : font-size 3s ease-in 1s;
}
/* 动画终止状态 */
.font-change {
    font-size : 50px;
}

      注册按钮事件用于控制动画的启动,并监听动画的结束事件。

//  启动动画并监听动画结束
d3.select("#btnTrans").on("click", function() {
    d3.select(".banner")
      //    通过添加样式类名启动动画
      .classed("font-change", true)
      //    监听动画的结束事件
      .on("transitionend", function() {
          alert("动画结束!");
      });
});

      停止CSS动画共有两种方式,一种是通过内嵌样式样式控制,一种是通过删除动画样式的类名控制,如下。

//  注册停止动画按钮
d3.select("#btnStop").on('click', function() {
    d3.select(".banner")
      //    通过内嵌样式控制
      .style("transition", "none")
      //    通过删除样式的类名控制
      //.classed("font-changed", false)
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值