使用jQuery旋转http://code.google.com/p/jqueryrotate/wiki/Examples将对象设置为0度到40度
正常工作,鼠标悬停,鼠标移除 - 但我需要它在两点之间自动循环动画,只要它悬停
需要在午餐时间为客户完成......帮助!
jQuery("#leafmealonepoint").rotate({
bind:
{
mouseover : function() {
jQuery(this).rotate({animateTo:40})
},
mouseover : function() {
jQuery(this).rotate({animateTo:0})
}
}
更新
好的,所以我试图像这样使用setInterval - 缺少什么?
function move(){
jQuery('#leafmealonepoint').rotate({animateTo:40}, function(){
jQuery(this).rotate({animateTo:0});
});
}
jQuery('#leafmealone').hover(
function() {
hoverInterval = setInterval(move, 1000);
},
function(){
clearInterval(hoverInterval);
}
);
进一步更新
jQuery(function(){
var leafmealone
jQuery('#leafmealone').mouseenter(function(){
leafmealone = setInterval(function()
{jQuery('#leafmealonepoint').rotate({animateTo:40},
jQuery('#leafmealonepoint').rotate({animateTo:0}))}, 1000);
}).mouseleave(function(){clearInterval(leafmealone);
});
});
我错过了什么?
答案 0 :(得分:1)
如果你想在鼠标位于该元素上时重复该动画,则需要setInterval()
,否则这将执行一次动画并在完成时停止,然后鼠标离开将再次执行并再次停止。
编辑:你还有2个鼠标悬停事件,我认为将鼠标悬停需要鼠标悬停或直接使用hover()
是错误的。
答案 1 :(得分:1)
尝试做:
jQuery(function(){
var leafmealone
jQuery('#leafmealone')
.mouseenter(function(){
leafmealone = setInterval(function() {
jQuery('#leafmealonepoint')
.rotate({animateTo:40})
.rotate({animateTo:0});
}, 1000);
})
.mouseleave(function(){
clearInterval(leafmealone);
});
});
我不熟悉旋转方法,但通常是动画完成/链接的方式。
答案 2 :(得分:0)
这是解决方案
function leafmealone() {
jQuery('#leafmealonepoint').stop().rotate({ angle:0, animateTo: 40, duration:600, callback: function() {
jQuery('#leafmealonepoint').stop().rotate({ animateTo: 0, duration:600});
}
});
}
jQuery(function() {
jQuery('#leafmealone').hover(function(){
leafmealone();
hoverInterval = setInterval(leafmealone, 1200);
}, function(){
clearInterval(hoverInterval);
});
})