RaphaelJS 动画循环
RaphaelJS animation loop
我需要帮助向我的 raphaelJS 动画添加循环。这个想法是点击按钮 id="1" 将紫色方块旋转 120 度。如果您点击按钮 id="2",紫色方块将向左旋转 120 度。
我已经完成添加它们都旋转的功能,虽然问题是你只能点击顺序,button id="1", button ID="2", 1, 2, , 1、2 等。为了澄清,您不能将蓝色方块沿同一方向旋转两次,您必须在按钮 1/2 之间交替。第二,你不能从旋转左功能开始。为了能够使用向左旋转,您首先必须将其向右旋转。
所以我需要帮助:
能够多次使用该功能
功能总结:
通过点击按钮,紫色方块会旋转 120 度进行变换,right.The 动画计时器设置为在 2 秒内发生。为其添加弹跳效果。
这里是右旋函数。 rotate left函数除了transform部分外完全一样。
然后我尝试通过添加“.repeat(Infinity)”来解决这个问题,但没有效果。
//Turn right
p.rect(10, 80, 50, 25)
.attr({
fill : "grey",
"stroke-width" : 1
}).click(function(){
purpleRect.animate({
transform : "r120",
}, 2000, "bounce").repeat(Infinity);
});
};
紫色方块本身:
window.onload = function(){
var p = Raphael(0, 0, 240, 140);
p.rect(0,0,240,70);
var purpleRect = p.rect(10, 10, 50, 50)
.attr({
fill : "#aaaaff",
"stroke-width" : 3
});
不知何故,您需要存储旋转,或者从现有变换中收集旋转。无论哪种方式都是可能的,将旋转存储在数据元素中可能是一种更简单的思维方式。所以主要部分看起来像这样...
设置初始轮换存储...
SomeElement.data('rotation',0)
然后在您的转换中使用它...
p.rect(70, 80, 50, 25)
.attr({
fill : "grey",
"stroke-width" : 1
}).click(function a(){
purpleRect.data('rotation', purpleRect.data('rotation') - 120);
purpleRect.animate({
transform : "r" + +purpleRect.data('rotation'),
}, 2000, "bounce");
});
我需要帮助向我的 raphaelJS 动画添加循环。这个想法是点击按钮 id="1" 将紫色方块旋转 120 度。如果您点击按钮 id="2",紫色方块将向左旋转 120 度。
我已经完成添加它们都旋转的功能,虽然问题是你只能点击顺序,button id="1", button ID="2", 1, 2, , 1、2 等。为了澄清,您不能将蓝色方块沿同一方向旋转两次,您必须在按钮 1/2 之间交替。第二,你不能从旋转左功能开始。为了能够使用向左旋转,您首先必须将其向右旋转。
所以我需要帮助:
能够多次使用该功能
功能总结:
通过点击按钮,紫色方块会旋转 120 度进行变换,right.The 动画计时器设置为在 2 秒内发生。为其添加弹跳效果。
这里是右旋函数。 rotate left函数除了transform部分外完全一样。 然后我尝试通过添加“.repeat(Infinity)”来解决这个问题,但没有效果。
//Turn right
p.rect(10, 80, 50, 25)
.attr({
fill : "grey",
"stroke-width" : 1
}).click(function(){
purpleRect.animate({
transform : "r120",
}, 2000, "bounce").repeat(Infinity);
});
};
紫色方块本身:
window.onload = function(){
var p = Raphael(0, 0, 240, 140);
p.rect(0,0,240,70);
var purpleRect = p.rect(10, 10, 50, 50)
.attr({
fill : "#aaaaff",
"stroke-width" : 3
});
不知何故,您需要存储旋转,或者从现有变换中收集旋转。无论哪种方式都是可能的,将旋转存储在数据元素中可能是一种更简单的思维方式。所以主要部分看起来像这样...
设置初始轮换存储...
SomeElement.data('rotation',0)
然后在您的转换中使用它...
p.rect(70, 80, 50, 25)
.attr({
fill : "grey",
"stroke-width" : 1
}).click(function a(){
purpleRect.data('rotation', purpleRect.data('rotation') - 120);
purpleRect.animate({
transform : "r" + +purpleRect.data('rotation'),
}, 2000, "bounce");
});