2012-09-10 25 views
5

Kullanıcılara görüntüyü yakınlaştırma/uzaklaştırma yeteneği vermek için çimdikleme olayını algılamak üzere jQuery touchy eklentisini kullanıyorum.tutam hareketinde görüntüyü ölçekleme

 
var w = 800, 
    h = 600; 
$('img').on('touchy-pinch', function (e, $target, data) { 
    $(this).css({ 
     width: w * data.scale, 
     height: h * data.scale 
    }); 
}); 

özel veri nesnesi aşağıdakileri içerir:

  • ölçekli
  • previousScale
  • currentPoint
  • startPoint
  • startDistance
İşte benim kod özü bulunuyor

İlk tutamda iyi çalışıyor, ancak parmaklarım ekrandan çıktıktan sonra tekrar yapmaya çalıştığımda, görüntü yeniden ölçekleniyor. İşleyicimi nasıl değiştirebilirim, böylece görüntü yeniden ölçeklemek yerine kaldığı yerden devam eder? ÖncekiScale'in de sıfırlanmasından bu yana, verilerin öncekiScale'ini kullanmadı.

cevap

4

Buradaki problem, vars w ve h öğelerini ölçeklendirilmiş değerlerine, yalnızca css'ye sıfırlamamanızdır, yani stil başka bir ölçek olayında 800x600'e geri döner. Ölçek etkinliğinde w*data.scale ve h*data.scale olarak ayarlanmış kalıcı bir w ve h'ye ihtiyacınız vardır.