我正在尝试在页面上不同元素悬停时动画交换图像。目前我正在使用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');
}
});
});
});
这个大体上是有效的,但如果你在前一个动画结束之前悬停在一个新元素上,它就会出问题......这将破坏它。任何帮助都将不胜感激!