我有两个实际上完全相同的动画......它们之间的区别是“左右对齐”定位。我想重用.forward和.backward的第一个代码块......我猜这可以通过使用数据或变量来完成,但我不知道如何去做。
感谢您的帮助
$('.forward').css({opacity:0, right:0});
$('.hover-area').hover(function() {
$(this).find('.forward').stop()
.animate({right:20}, {queue:false, duration:300, easing:'easeOutCubic'})
.animate({opacity:'0.95'}, {queue:false, duration:400, easing:'easeOutCubic'});
},function() {
$(this).find('.forward').stop()
.animate({right:0}, {queue:false, duration:550, easing:'easeOutSine'})
.animate({opacity:'0'}, {queue:false, duration:300, easing:'easeOutSine'});
});
$('.backward').css({opacity:0, left:0});
$('.hover-area').hover(function() {
$(this).find('.backward').stop()
.animate({left:20}, {queue:false, duration:300, easing:'easeOutCubic'})
.animate({opacity:'0.95'}, {queue:false, duration:400, easing:'easeOutCubic'});
},function() {
$(this).find('.backward').stop()
.animate({left:0}, {queue:false, duration:550, easing:'easeOutSine'})
.animate({opacity:'0'}, {queue:false, duration:300, easing:'easeOutSine'});
});
答案 0 :(得分:0)
您可以创建一个新的jQuery函数,并为代码上的两个段之间的每个差异传递变量。
$.fn.setupAnimation = function(selector, direction) {
return this.hover(function() {
var startData = {};
startData[direction] = 20;
$(this).find(selector).stop()
.animate(startData, {queue:false, duration:300, easing:'easeOutCubic'})
.animate({opacity:'0.95'}, {queue:false, duration:400, easing:'easeOutCubic'});
}, function() {
var startData = {};
startData[direction] = 0;
$(this).find(selector).stop()
.animate(startData, {queue:false, duration:550, easing:'easeOutSine'})
.animate({opacity:'0'}, {queue:false, duration:300, easing:'easeOutSine'});
});
}
$('.hover-area').setupAnimation('.forward', 'right');
$('.hover-area').setupAnimation('.backward', 'left');