javascript - 重置变换: rotate() without invoking -webkit-transition: style

标签 javascript css canvas rotation

我正在 Canvas 上画一个轮子,旋转它,然后想要将旋转重置为 0。但是由于 css 属性:-webkit-transition: -webkit-transform 15s ease;重置旋转时,从r -> 0旋转,需要15秒。有没有办法在不调用 transform 15s Easy 的情况下重置旋转?

旋转变换完成后,我正在 Canvas 上重新绘制数据,因此需要立即重置。

非常感谢

var r=-(3600 + random);
$("#wheel").css("transform","rotate("+r+"deg)");
$("#wheel").css("-moz-transform","rotate("+r+"deg)");
$("#wheel").css("-webkit-transform","rotate("+r+"deg)");
$("#wheel").css("-o-transform","rotate("+r+"deg)");

$("#wheel").one('webkitTransitionEnd', function() {
    $("#wheel").css("transform","none");
    $("#wheel").css("-moz-transform","none");
    $("#wheel").css("-webkit-transform","none");
    $("#wheel").css("-o-transform","none");
});

最佳答案

我想我有一个解决方案。通过在将类更改为动画旋转类之前将 css 类短暂更改为“默认旋转”类,您可以控制每个单独类上的动画计时,以便在旋转到新位置之前让轮子恢复到起始位置.

CSS:

.spin0 {
    transform: rotate(0deg);    
}

.spin750 {
    transform: rotate(750deg) !important;
    transition-duration: 2.5s !important;
}

js(点击时):

element.className = "spin0";

setTimeout(function(){
    element.className = "spin750";
}, 10); 

关于javascript - 重置变换: rotate() without invoking -webkit-transition: style,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37027199/

相关文章:

javascript - 如何从 Google PlusOne 按钮中删除 "Publicly Recommend On Google"弹出窗口?

javascript - Canvas 上的 SVG 路径位置

C++ 生成器透明位图覆盖 Canvas

javascript - 使用日期范围选择器时的日期和时间不正确

javascript - jQuery 验证插件 : disable validation for specified submit buttons when there is submitHandler handler

jquery - 使用 jquery 搜索加号

html - CSS 网格透视/变换

html5 - 使用贝塞尔曲线的拼图碎片

javascript - 访问在外部 SVG 文件中定义的 DOM 对象

javascript - 寻找更好的 JavaScript/CSS 开关