Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
翻译后JavaScript旋转错误_Javascript_Jquery_Velocity.js - Fatal编程技术网

翻译后JavaScript旋转错误

翻译后JavaScript旋转错误,javascript,jquery,velocity.js,Javascript,Jquery,Velocity.js,我正在使用Velocity.js制作动画 我首先平移和旋转一个物体。动画完成后,我需要将对象再旋转360度 问题在于,在第二个动画中,旋转轴处于禁用状态。对象不是围绕中心旋转,而是围绕其原点旋转 $.Velocity( obj, "stop" ); $.Velocity( obj, {translateX: pos, rotateZ: rotation + 'deg'}, {duration: 1000, complete: functio

我正在使用Velocity.js制作动画

我首先平移和旋转一个物体。动画完成后,我需要将对象再旋转360度

问题在于,在第二个动画中,旋转轴处于禁用状态。对象不是围绕中心旋转,而是围绕其原点旋转

$.Velocity( obj, "stop" );
$.Velocity( obj,
              {translateX: pos, rotateZ: rotation + 'deg'},
              {duration: 1000, complete: function() {
                  $.Velocity( obj, {rotateZ: "360deg"}, {duration: 1000} ); }
             });
有什么问题吗

更新


演示问题的代码笔:

这是因为Velocity当前不解析初始的
转换值。从文档中:

请注意,Velocity的性能优化的副产品是忽略对转换值(包括样式表中定义的初始值)的外部更改,但这可以通过强制输入进行修正。(可以使用钩子函数在“速度”中手动设置变换值。)


这将在未来的版本中解决,但目前按照下面的建议使用强制喂食来修复它。

对不起,我没有足够的要点来评论,但是hook(另一个答案是正确的)。只需添加$.Velocity.hook(圆圈“translateY”,“0”)

var circle=$(“.circle”);
圆周速度({
translateX:500,
罗泰兹:360
}, {
持续时间:2500
}).延迟(500).速度({
rotateZ:-360*2,
翻译:200
}, {
持续时间:2500
});
$.Velocity.hook(圆,“translateY”,“0”);
圆圈延迟(500)
.速度({
translateY:0,
旋转Z:-360*5
}, {
持续时间:2500
});
.circle{
背景:url(“https://dl.dropboxusercontent.com/u/16997159/square.png");
宽度:128px;
高度:128px;
}


这是如何进行转换的。为了达到您想要的效果,您需要先旋转对象,然后移动它。//或者,Velocity.js可能允许您为旋转指定旋转原点?我知道在CSS中,“平移”是相对于元素的原始位置的,它实际上不会移动它,这与“位置”的顶部和左侧不同。此外,在HTML5画布中,还可以
保存
恢复
上下文,从而“重置”先前转换的来源。也许在
Velocity.js
中有类似的东西?我不认为这与强制进给有关,但它与旋转原点有关。对我有效的方法:使用Velocity.hook将元素移回0,启动动画,再次使用Velocity.hook将其移动到所需位置。但是,我无法让两个动画同时工作-我需要同时进行平移和旋转。您可以发布一个小提琴来准确解释您看到的内容和期望的内容吗?请查看以下代码笔:动画的第一部分可以,但是,在动画的第二和第三部分中,对象以螺旋方式旋转,而不是围绕其自身中心旋转。