This works in Chrome12 for me. In the past, I had several problems with hover() in Chrome (and position() ). I read that Webkit is too fast. Perhaps this is what is happening here? However, I could not understand what the problem was with hover (). However, using a different strategy seems to be better in Chrome. I changed the class to the actual <img> and not to the external <div> , otherwise the animation started in the empty space around the images, and I moved the background shadow before the animation to make the selection faster, i.e. no need to wait for the animation to start.
Edit: This may be a floating point error in Chrome. If you replace the float:left style with .et_pt_gallery_entry with display:inline-block , then hover () works. In any case, I left the updated hover () code below, as it is a bit cleaner. I try to avoid the float whenever possible. Over the years there have been many problems with floating elements! Hope this fixes this for you.
$(function(){ $('.et_pt_item_image').hover(function(){ $('.zoom-icon, .more-icon, .map-icon', this).css({opacity:0, visibility:'visible'}); $('img', this).css({backgroundColor:'#ddd', borderColor:'#bbb'},400); $('a.zoom-icon', this).stop().animate({opacity: 1, left: 40}, 400); $('a.more-icon', this).stop().animate({opacity: 1, left: 105}, 400); $('a.map-icon', this).stop().animate({opacity: 1, left: 170}, 400); }, function(){ $('img', this).css({backgroundColor:'#fff', borderColor:'#e5e5e5'},400); $('a.zoom-icon', this).stop().animate({opacity: 0, left: 31}, 400); $('a.more-icon', this).stop().animate({opacity: 0, left: 105}, 400); $('a.map-icon', this).stop().animate({opacity: 0, left: 180}, 400); }); });