2013-05-29 3 views
0

Я хочу масштабировать изображения, используя jquery как css3 transform doing. поэтому я написал сценарий здесьмасштаб изображения с использованием метода анимации jquery

(function(){ 
    $('.img_container img').on('mouseover',function(){ 
     var $this = $(this), 
      width = $this.attr('width'), 
      height = $this.attr('height'), 
      new_width = (width + 10)+'px', 
      new_height = (height + 10)+'px'; 

     $this.animate({'width':new_width, 
         'height':new_height, 
         'top':'-10px', 
         'left':'-10px'},{ 
          duration:300, 
          }); 
     }); 
    })(); 

мыши над на изображение увеличивается там ширина и высота больше, чем 10px и необычно любая помощь, пожалуйста,

я смог написать еще один сценарий.

(function(){ 
    var factor = 15; 

$('.img_container img').on('mouseover',function(){ 

     var $this = $(this), 
     height = $this.height(), 
     width = $this.width(); 
    $(this).animate({ 
     top: height - factor, 
     left: width - factor, 
     width: width + factor, 
     height: height +factor 
    },200); 
}); 
$('.img_container img').on('mouseleave',function(){ 

     var $this = $(this), 
     height = $this.height(), 
     width = $this.width(); 
    $(this).animate({ 
     top: height + factor, 
     left: width + factor, 
     width: width - factor, 
     height: height - factor 
    },200); 
}); 

})(); 

Однако, если я переместить мышь в и из образа несколько раз очень быстро, то изображение будет «пульсировать», потому что она ловит каждое событие и не может показать их достаточно быстро. Это как задержка анимации. Как это исправить.

ответ

0

Моя первая догадка будет использовать

$(this).animate 

вместо

$this.animate 
3
var factor = 2; 

$('.img_container img').on('mouseover',function(){ 
    $(this).animate({ 
     top: '-=' + $(this).height()/factor, 
     left: '-=' + $(this).width()/factor, 
     width: $(this).width() * factor 
    }); 
}); 

для конкретного фактора, передать этот Fiddle

+0

Спасибо большое решение –

+0

@samthush Тогда принимаем и дать REP к его ответному помощнику:] Я сделал это, так как нашел это решение хорошим. – Placeable

0
(function(){ 
    $('.img_container img').on('mouseover',function(){ 
     var 
      width = $(this).css('width'), 
      height = $(this).css('height'), 
      new_width = (width + 10)+'px', 
      new_height = (height + 10)+'px'; 

     $(this).animate({'width':new_width, 
         'height':new_height, 
         'top':'-10px', 
         'left':'-10px'},{ 
          duration:300, 
          }); 
     }); 
    })(); 
Смежные вопросы