[英]Raphael - Hover Animation
当你将鼠标悬停在raphael元素上时,我想尝试一点动画。
见这里的例子:
当您将鼠标悬停在方块上时,它会向上扩展,当您停止悬停时,它会缩小。
问题是:当你在元素仍然按比例放大的情况下停止悬停在元素上时,它会开始按比例缩小,并且最终会比原来的要小。
你可以看到当你将鼠标悬停在元素上,然后立即将鼠标移出它。
以下是我用于悬停动画的功能:
hoverFunc = function() {
rect.animate({transform: "...s1.6,1.6"}, 1000, 'bounce');
};
hideFunc = function() {
rect.animate({transform: "...s0.625,0.625"}, 1000, 'bounce');
};
我会将变换保存为var并转换为原始状态:
var canvas = Raphael(document.getElementById("canvas"), 250, 250);
var rect = canvas.rect(1, 1, 50, 50);
rect.attr({'fill': 'black'});
rect.transform("t20, 20");
var origionalForm = rect.transform(); // remember current transform
hoverFunc = function() {
rect.animate({transform: "...s1.6,1.6"}, 1000, 'bounce');
};
hideFunc = function() {
rect.animate({transform: origionalForm.toString()}, 1000, 'bounce'); // back to origional state
};
rect.hover(hoverFunc, hideFunc);
演示: http : //jsfiddle.net/GVEqf/27/
您可以重置绝对变换(至少在一个动画中),而不是将变换附加到两个动画中的所有现有变换(使用“...”)。 这有一个缺点,你必须重复初始翻译字符串,但我想它有更明确的优势。
我修改了你的jsFiddle :
hoverFunc = function() {
rect.animate({transform: "...S1.6,1.6"}, 1000, 'bounce');
};
hideFunc = function() {
rect.animate({transform: "t20, 20"}, 1000, 'bounce');
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.