Это работает в Chrome12 для меня. В прошлом у меня было несколько проблем с hover()
в Chrome (и position()
также). Я читал, что Webkit иногда слишком быстр. Может быть, это то, что здесь происходит? Я действительно не мог понять, в чем проблема с hover () в этом случае. Однако в Chrome лучше использовать другую стратегию. Я изменил класс на действительный <img>
, а не на внешний <div>
, иначе анимация начиналась в пустом пространстве вокруг изображений, и я переместил фон тень перед анимацией, чтобы ускорить выделение, т. е. не нужно ждать начала анимации.
Редактировать: Это может быть ошибка float в Chrome. Если вы замените стиль float:left
в .et_pt_gallery_entry
на display:inline-block
, тогда hover () будет работать. Я все равно оставил обновленный код hover () ниже, так как он немного чище. Я стараюсь избегать поплавков, когда это возможно. За эти годы было много проблем с плавающими элементами! Надеюсь, это поможет вам.
$(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);
});
});