Есть много блоков, при наводке на которые срабатывает функция по их увеличению. Естественно если мышку уводить с них то все возвращается обратно.
Вот сама функция:
$(document).ready(function(){
$("#list_wrap").on("mouseenter", ".list_box", function(){
$('.mDem').stop();
var $startWidth = $(this).find('img').width();
var $startHeight = $(this).find('img').height();
var $origWidth = $(this).find('img').attr('width');
var $origHeight = $(this).find('img').attr('orh');
$sdvigLeft = (($origWidth - $startWidth)/2)*(-1);
$sdvigTop = (($origHeight - $startHeight)/2)*(-1);
$dem = $(this).find('img');
setTimeout(function() {
$dem.animate({'marginLeft': $sdvigLeft + 'px', 'marginTop': $sdvigTop + 'px', 'width': $origWidth + 'px', 'position': 'absolute', 'maxWidth': '900px'}, 100);
}, 500);
}).on('mouseleave', '.list_box', function(){
$(this).find('img').css({'marginLeft': '0', 'marginTop': '0', 'width': '310px', 'position': 'absolute', 'maxWidth': '100%'});
});
});
Вот живой пример как все это работает (наброски):
http://demotivatory.net/
Все работает как положено, но к сожалению только при условии если водить мышку очень медленно и без резких движений. Если же начать это делать резко и быстро, некоторые блоки не успевают уменьшаться и остаются в увеличенном виде. А еще периодически функция начинает обрабатываться не верно и картинка не сдвигается в нужное положение.
Как-то так, как на скриншоте ниже.
Однако вот тут:
http://jquery-gp-gallery.ionelmc.ro/demo/
Как я не пытался подобной проблемы мне повторить не удалось. Подскажите, как нужно модернизировать данную функцию чтобы такой проблемы больше не появлялось?