- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个问题。
我想播放一个 CSS 动画,然后让用户通过单击按钮将其还原。因为在我 future 的元素中会有很多这样的动画,所以我不想为前向动画和后向动画制作关键帧。
因为它存在我想使用“动画方向:反向”属性但是我遇到了一个问题:在我以“正常”方向播放动画后,我似乎无法再使用“反向”属性播放动画。
.expand-bl {
animation: expand-bl-kf 1s;
animation-fill-mode: both;
animation-direction: normal;
}
.collapse-bl {
animation: expand-bl-kf 1s;
animation-fill-mode: both;
animation-direction: reverse;
}
这是为什么呢?有谁知道解决方法吗?
这是一个解决问题的 fiddle : https://jsfiddle.net/armoxo1q/1/
编辑:
我找到了这篇文章: https://css-tricks.com/restart-css-animation/
它说使用 jquery 或(在注释中)再次删除并附加元素以使用 setTimeout。从处理的 Angular 来看,我更喜欢 setTimeout,因为浏览器不必分离并重新附加节点虽然从美学的 Angular 来看我喜欢删除/附加模式,因为使用 setTimeout 你可以在 #container DIV 折叠的地方看到一个小闪光,然后它会动画
我已将这些方法添加到我的 fiddle 中
最佳答案
问题是 animation-iteration-count
默认为 1
,而您的动画已经完成了该次迭代。
因此,您可以将它增加到 2
:
.collapse-bl {
animation: expand-bl-kf 1s;
animation-fill-mode: both;
animation-direction: reverse;
animation-iteration-count: 2;
}
document.getElementById("container").className = "expand-bl";
document.getElementById("container").addEventListener("animationend", function (e) {
console.log(e)
if (e.animationName === "expand-bl-kf" && e.target.className === "expand-bl") document.getElementById("close").style.display = "block";
else if (e.animationName === "expand-bl-kf" && e.target.className === "collapse-bl") document.getElementById("close").style.display = "none";
});
document.getElementById("close").addEventListener("click", function () {
document.getElementById("container").className = "collapse-bl";
});
body, html {
margin: 0;
padding: 0;
}
#close {
display: none;
position: absolute;
left: 10px;
top: 10px;
z-index: 999;
}
#stage {
width:600px;
height:600px;
background-color: pink;
}
#container {
width:300px;
height:250px;
background-color: orange;
position: absolute;
left: 300px;
top: 0px;
}
.expand-bl {
animation: expand-bl-kf 1s;
animation-fill-mode: both;
animation-direction: normal;
}
.collapse-bl {
animation: expand-bl-kf 1s;
animation-fill-mode: both;
animation-direction: reverse;
animation-iteration-count: 2;
}
@keyframes expand-bl-kf {
from {
width:300px;
height:250px;
left: 300px;
top: 0px;
}
to {
width:600px;
height:600px;
left: 0px;
top: 0px;
}
}
<button id="close">close</button>
<div id="stage">
<div id="container" class="container"></div>
</div>
关于CSS3 无法反转动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31991990/
我想以 headless 模式(屏幕上根本没有 GUI)将 JPanel 绘制到 BufferedImage 中。 final JPanel panel = createPanel(); panel.
我是 Canvas 的新手,正在尝试创建看起来逼真的 float 粒子动画。 目前,我正在创建 400 个随机散布在 400x400 Canvas 上的粒子。 然后,在每个 requestAnimat
有没有办法在悬停时停止悬 float 画? :hover 这是一个显示动画的链接: https://codepen.io/youbiteme/pen/RprPrN 最佳答案 只需为您的 svg 悬停添
我想在谷歌地图上绘制覆盖图,其中除了特定点周围 1.5 公里半径以外的所有内容都被遮蔽了。为此,我尝试使用带有大量边框的圆圈,所以我会在边框中放置透明中心和覆盖颜色来实现这一点,但它无法渲染。
我正在尝试通过扩展类 UIView 来创建自定义 View ,该类可以在自定义 View 的中心显示一个圆圈。为了添加自定义绘图,我重写了 draw(_ rect: CGRect) 方法,如下所示。
我是一名优秀的程序员,十分优秀!