こんにちは、Jquery atm を学んでいます。次のことを単純化するための最良の方法は何だろうと思っています。
$(document).ready(function() {
$('.hover').hide();
$( '.state' ).hover(function() {
$('.divtop .state').stop().animate({opacity:0}, 300),
$('.divtop .hover').show(),
$('.divtop .hover').stop().animate({opacity:1}, 1000);
},
function() {
$('.divtop .hover').stop().animate({opacity:0}, 600,'',function(){$(this).hide()});
$('.divtop .state').stop().animate({opacity:1}, 500);
});
$( '.divmiddle .state' ).hover(function() {
$('.divmiddle .state').stop().animate({opacity:0}, 300),
$('.divmiddle .hover').show(),
$('.divmiddle .hover').stop().animate({opacity:1}, 1000);
}, function() {
$('.divmiddle .hover').stop().animate({opacity:0}, 600,'',function(){$(this).hide()});
$('.divmiddle .state').stop().animate({opacity:1}, 500);
});
$( '.divbottom .state' ).hover(function() {
$('.divbottom .state').stop().animate({opacity:0}, 300),
$('.divbottom .hover').show(),
$('.divbottom .hover').stop().animate({opacity:1}, 1000);
}, function() {
$('.divbottom .hover').stop().animate({opacity:0}, 600,'',function(){$(this).hide()});
$('.divbottom .state').stop().animate({opacity:1}, 500);
});
});
html は次のようになります。
<section class="left">
<div class="divtop">
<img src="img/layout/blue.png" class="state" alt="blue" />
<img src="img/layout/bluehover.png" class="hover" alt="bluehover" />
</div><!-- close class divtop -->
<div class="divmiddle">
<img src="img/layout/red.png" class="state" alt="red" />
<img src="img/layout/redhover.png" class="hover" alt="redhover" />
</div><!-- close class divmiddle -->
<div class="divbottom">
<img src="img/layout/pink.png" class="state" alt="pink" />
<img src="img/layout/pinkhover.png" class="hover" alt="pinkhover" />
</div><!-- close class divbottom -->
</section><!-- close left section -->
css の画像は絶対的に配置されているため、互いに重なっています。