你必须找到一个方法来“记住”的价值这5个CSS PARAMS出现动画之前...
假设你已经没有这些相关信息,因为是动态创建或东西的圈子,你可以尝试使用object
:
var circleCSSmemory = {};
$("#circle").on("mouseover",function(){
circleCSSmemory.width = $(this).css("width");
circleCSSmemory.height = $(this).css("height");
circleCSSmemory.borderRadius = $(this).css("borderRadius");
circleCSSmemory.marginLeft = $(this).css("marginLeft");
circleCSSmemory.marginTop = $(this).css("marginTop");
$(this).animate({width:"500px",
height:"500px",
borderRadius:"250px",
marginLeft:"300px",
marginTop:"200px"
},1500);
});
这是创建的对象格式:
(以下代码仅供您“visalize”!不包括在你的代码。)
circleCSSmemory = { width: [value],
height: [value],
borderRadius: [value],
marginLeft: [value],
marginTop: [value]
};
然后,您将可以重新申请之前的CSS PARAMS(全部或只有你想要的那些)。
$("#circle").on("mouseout",function(){
$(this).animate({width:circleCSSmemory.width,
height:circleCSSmemory.height,
borderRadius:circleCSSmemory.borderRadius,
marginLeft:circleCSSmemory.marginLeft,
marginTop:circleCSSmemory.marginTop
},1500); // You can set a different animation delay ;)
});
注意我使用了CSS :hover
的mouseover
和mouseout
事件,而不是因为你使用jQuery animate()
...那你可能要设置一个不同的动画时间,而params鼠标移开时。
否则......你也可以只使用一个CSS类...这是不太复杂,但并没有给尽可能多的控制,animate()
这个工作!谢谢:) –