【发布时间】:2016-04-08 11:57:00
【问题描述】:
当我将鼠标悬停在页面中的不同元素上时,我正在尝试为图像交换设置动画。我目前正在使用 GSAP,但如果可能的话,我会接受使用 jQuery 或仅使用 CSS 的更简单的解决方案。
鉴于我为此编写了多少代码,我已经知道我走错了路。必须有一个更简单的解决方案(而这个甚至不起作用,所以也有)。
这是我到目前为止所做的,因此您可以了解我要完成的工作:
http://codepen.io/jakatz/pen/GorLZb
这是 javascript/gsap 代码:
$(document).ready(function() {
var image1 = document.querySelector('#image1');
var image2 = document.querySelector('#image2');
var image3 = document.querySelector('#image3');
var activeImage = document.querySelector('.image-container .active');
$('.item1').hover(function() {
TweenMax.to(image1, 0.5, {
left: 0
});
TweenMax.to(activeImage, 0.5, {
left: 1500,
onComplete: function() {
$('.image').removeClass('active');
$('#image1').addClass('active');
activeImage = document.querySelector('.image-container .active');
}
});
});
$('.item2').hover(function() {
TweenMax.to(image2, 0.5, {
left: 0
});
TweenMax.to(activeImage, 0.5, {
left: 1500,
onComplete: function() {
$('.image').removeClass('active');
$('#image2').addClass('active');
activeImage = document.querySelector('.image-container .active');
}
});
});
$('.item3').hover(function() {
TweenMax.to(image3, 0.5, {
left: 0
});
TweenMax.to(activeImage, 0.5, {
left: 1500,
onComplete: function() {
$('.image').removeClass('active');
$('#image3').addClass('active');
activeImage = document.querySelector('.image-container .active');
}
});
});
});
这在大多数情况下都有效,直到您在前一个动画完成之前将鼠标悬停在一个新元素上......这会破坏它。任何帮助将不胜感激!
【问题讨论】: