如何在CSS3动画结束后. 手动倒放动画?

发布于 2022-09-11 19:30:46 字数 203 浏览 14 评论 0

需要实现效果:
有两个状态A,B,点击后A->B,再次点击B->A;
例子:点击元素有元素变大, 再次点击元素变小,但是我写的只有在第一次点击的时候
有效果
JSFiddle: https://jsfiddle.net/sylvaner...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

反话 2022-09-18 19:30:46

用transition;

transition: width 0.5s,height 0.5s;

css

.icon {
  width: 50px;
  height: 50px;
  background: blue;
  overflow: hidden;
  line-height: 50px;
  font-size: 20px;
  text-align: center;
  border-radius: 50%;
  transition: width 0.5s,height 0.5s;
}
.act
{
  width: 300px;
  height: 300px;
}

js

let flag = true;
$('.icon').click(function() {
    if(flag) {
      $('.icon').addClass('act');
  } else {
        $('.icon').removeClass('act');
  }
    flag = !flag;
})
家住魔仙堡 2022-09-18 19:30:46

如果是简单的动画效果,可以用transition,设定需要动画的属性,然后用一个class来设定动画的终止状态,然后点击事件来增加或移除class来实现动画

例:

HTML

<div id="target">target</div>

CSS

div#target { height:50px; width: 50px; transition: height 1s ease-in, width 1s ease-in;}
.big { height: 100px; width: 100px;}

JS

document.getElementById('target').addEventListener('click', function(){this.classList.toogle('big');}, false);

如果你要实现复杂CSS动画,那控制起来就有点麻烦了,你要监听Animation事件来获知动画当前的状态,用animation-play-state来控制播放。因为没有提供动画控制的API,所以还不如用JS动画来得方便。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文