资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 面试经验 > 面试问答

反向使用CSS动画(通过重置状态?)

面试问答 更新时间: 发布时间: 计算机考试归档 最新发布

反向使用CSS动画(通过重置状态?)

不,没有办法单独使用CSS重新启动动画。您必须使用Javascript从元素中删除动画,然后将其重新应用到元素(经过延迟)以重新启动。

以下是[W3C的CSS3动画规范说的(在不同的上下文中,但这一点也应适用于这种情况):

还要注意,更改“ animation- name”的值不一定会重新启动动画(例如,如果应用了一个动画列表,并且从列表中删除了一个动画,则仅该动画将停止;其他动画将继续)。 为了重新启动动画,必须将其删除然后重新应用。

重点是我的

注意:**
本文引用了Oli的涉猎内容,该文章声称更改持续时间,迭代计数等属性会使其在Webkit上重新启动,但由于它们已不再在Chrome上运行,因此似乎已经过时了)。


摘要:

尽管您已经谈到以下内容,但为了完整性起见,我将再次重申:

  • 将动画应用于元素后,它将保留在元素上,直到将其删除。
  • UA会跟踪元素上的动画以及动画是否完成。
  • 当您将相同的动画应用于
    :checked
    (尽管方向不同)时,UA不会执行任何操作,因为该动画已经存在于元素上。
  • 单击复选框时位置(瞬时)的切换是因为
    transform
    :checked
    选择器中应用了。动画的存在没有区别。

解决方案:

从下面的代码片段中可以看出,即使使用Javascript,使用单个动画实现此操作也非常复杂。

var input = document.getElementsByClassName("my-checkbox")[0];input.addEventListener('click', function() {  if (this.checked) {    this.classList.remove('my-checkbox');    window.setTimeout(function() {      input.classList.add('anim');      input.classList.add('checked');    }, 10);  } else {    this.classList.remove('anim');    window.setTimeout(function() {      input.classList.remove('checked');      input.classList.add('my-checkbox');    }, 10);  }});input {  transform: translate3d(50px, 0, 0);}.my-checkbox {  animation: moveLeft 1s;  animation-direction: reverse;}.checked {  transform: translate3d(0px, 0, 0);}.anim{  animation: moveLeft 1s;}@keyframes moveLeft {  from {    transform: translate3d(50px, 0, 0);  }  to {    transform: translate3d(0px, 0, 0);  }}<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script><input type="checkbox" >

因此, 最好的选择 (如果要坚持使用CSS动画)是 使用两种不同的动画

或者,您也可以查看Marcelo的评论。如果实际用例恰好是小提琴中提供的用例,那么

transition
就足够了,
animation
并且不是必需的。过渡本质上可以在正向和反向两个方向上起作用,因此将是一个更安全的选择。



转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/615122.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【反向使用CSS动画(通过重置状态?)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2