CSS3关键帧-改变动画持续时间导致“;跳跃”;
CSS3 keyframes - changing animation duration causes "jumps"
您可以在这里看到发生了什么http://goo.gl/bBMx6x(这是一把小提琴,它不允许我在没有c&p代码的情况下发布它)点击开始,等待几秒钟,然后按停止。。它会跳到(我认为)位置,如果它从一开始就有较低的持续时间。
我想做的是让它旋转,然后在停止时"完成"旋转,但速度要快一点。。
这是不可能按照您尝试的方式进行的。(出于你猜测的原因)
您必须用javascript计算第二个动画的开始方式。
webkit演示
脚本是
$(document).ready(function() {
$(".start").click(function(e) {
e.preventDefault();
var elem = document.getElementById('idtest');
elem.style["-webkit-animation"] = "";
elem.style["-webkit-animation-delay"] = "";
$("#idtest").removeClass("spin2").addClass("spin");
});
$(".stop").click(function(e) {
e.preventDefault();
Stopping ();
});
$(".test").on("animationend",
function() {
$(this).removeClass("finishSpin");
}
);
});
function Stopping () {
var elem = document.getElementById('idtest');
var style = window.getComputedStyle (elem, null);
var frame = style.getPropertyValue("z-index");
var delay = - frame / 36;
elem.style["-webkit-animation"] = "spin2 10s 1 linear";
elem.style["-webkit-animation-delay"] = delay + "s";
elem.className = "";
}
想法如下:
- 按stop键时,获取计算样式以了解元素在动画中的位置
- 由于变换使用起来很复杂,我还设置了动画以更改一个更容易的值。在这种情况下,我选择了z索引,但它可以是你想要的任何索引(当然,这是不可见的)
- 使用该值可以在正在设置的新动画上设置负延迟。负延迟是使过渡在中途开始的方式
我只将你的fiddle应用于webkit,但其他浏览器的想法也是一样的。
相关文章:
- 在jQuery中,短距离长持续时间的精细字体大小动画
- 创建一个倒计时计时器脚本,该脚本计算声音文件的持续时间,而不是特定的日期
- 输入视频文件时获取视频持续时间
- 无填充的滚动魔术持续时间
- 我需要在每5秒内调用一个函数,并重置持续时间
- jQuery动画的持续时间就像一个延迟
- 如何在特定时间重新加载page.php,例如:07:45.非持续时间,例如:每5秒
- 如何在dhtmlxgantt中显示灯箱中的开始日期、结束日期和持续时间
- Javascript - 具有音高和持续时间控制的文本到语音
- setTimeout() 函数在超时持续时间之前调用
- HTML 5 音频 :是否有在更改缓冲持续时间时触发的事件
- 如何获取所有旅行模式的距离和持续时间,例如驾驶,公交,骑自行车,在我的页面中步行以及将其存储在数据库中
- 当用户在文本框中输入日期时,如何计算一年的持续时间
- 如何使用 Javascript 将持续时间字符串解析为秒
- 速度.js动画两个属性时持续时间不同
- d3 动画中的持续时间
- Webkit-css随持续时间变化
- JS:设置src更改的动画持续时间
- 幻灯片放映中的第一张幻灯片超时(持续时间几乎是其他幻灯片的两倍)
- CSS3关键帧-改变动画持续时间导致“;跳跃”;