Для веб-сайта, использующего jQuery, на странице есть графика, при нажатии на которую информация выводится в другом разделе сайта. При наведении мыши изображения увеличиваются на процент от их центра. Проблема заключается в том, что при быстром наведении мыши (до завершения анимации) изображения не изменяются в размерах. (Они становятся меньше.)
$(".locationimg").hover(
function(){
var height = $(this).height()
var width = $(this).width()
var top = $(this).position().top
var left = $(this).position().left
$(this).stop().animate({
height: height*1.1 + 'px',
width: width*1.1 + 'px',
top: top - (((height*1.1)-height)/2) + 'px',
left: left - (((width*1.1)-width)/2) + 'px'
});
},
function(){
var height = $(this).height()
var width = $(this).width()
var top = $(this).position().top
var left = $(this).position().left
var height1 = height/1.1
var width1 = width/1.1
$(this).stop().animate({
height: height1 + 'px',
width: width1 + 'px',
top: top - (((height1)-height)/2) + 'px',
left: left - (((width1)-width)/2) + 'px'
});
}
);
Если бы переменные могли быть определены до входа в .hover (), это было бы легко, потому что изменение размера изображения было бы просто «высота: высота» и так далее. Проблема в том, что для этого требуется несколько изображений, поэтому переменные должны быть определены в .hover ().