2011-08-03 20 views
8

'da kaydırma mesafesini hesaplamanızı umarım bugün iyi durumdasınız, mobil web sitesindeki kaydırma mesafesini (bir dokunma hareketi) hesaplamaya çalışıyorum, kullanıcının ekran boyunca kaç piksel attığını nasıl hesaplarsınız? ?jQuery-mobile

$('.cmButtons').live('swipeleft',function(){ 
    console.log("swiped left"); 
}); 
+1

Sadece jQuery kullanmadan bunu nasıl yapacağımı biliyorum, bu bir cevap değil belki bir ipucu. Tokanın başlangıç ​​x, y koordinatları touchStart etkinliğinde belirlenir. Orada da, startPos'u varsayılan bitiş konumu olan endPos'a atayabilirsiniz. TouchMove dinleyicide, mevcut koordinatlara dikkat ederek, bunları endPos koordinatlarını yaparsınız. TouchEnd ile startPos ve endPos arasındaki farkı not edersiniz. Bu nedenle, jQuery, swipeLeft olayında startPos ve endPos koordinatlarını açığa çıkarır veya jQuery dışında bunu gerçekleştirmek için kendi eklentinizi bağlamanız gerekir. – Tim

+0

Bazı örnek kodları ekleyebilir misiniz lütfen Tim? ve ben biraz farklı olabilir anlıyoruz ama başlamak için temel olarak kullanmak için kodu kullanmak istiyorum :) – Xavier

+1

İlgili: http://stackoverflow.com/questions/3183872/does-jquery-preserve-touch-events-properties ve http: // stackoverflow.com/questions/4755505/nasıl-recogized-touch-event-using-jquery-for-ipad-safari-tarayıcı-is-it-mümkün –

cevap

2

bu yardımcı olur emin ama Beta 2 ile bazı ek tokatlamak işlevselliği

yapılandırılabilir tokatlamak olay eşikleri vardır

eklendi yayımlandı Değil bir sayı vardı jquery.mobile.event.js kaydırma kodundaki sabit kodlanmış sabitlerin sayısı. Daha fazla dikey yer değiştirmeye izin vermek için bu sabitleri ayarlamaya ihtiyaç duyan geliştiriciler için ve hala bir kaydırma kaydetmek için bu yeni özellik bunların ayarlanmasına izin verir. Buna katkıda bulunmak için mlitwin'e numaralı telefondan teşekkür ederiz.

  • scrollSupressionThreshold (varsayılan: 10px) - Bu yatay deplasmandan daha fazla ve biz
  • durationThreshold kaydırma bastırır (varsayılan: 1000ms) - bu daha fazla zaman ve bir kaydırma
  • değil horizontalDistanceThreshold (varsayılan: 30px) - Yatay olarak kaydır deplasmanının bundan daha fazlası olmalıdır.
  • verticalDistanceThreshold (varsayılan: 75px) - Dikey kaydırma kaydırması bundan daha az olmalıdır.
+0

sonunda jQuery Mobile'da özel bir dinleyici yazmak zorunda kaldım - bu başlangıç ​​dokununda tetiklenecek - hızlıca kaydırın ve dokunun - olayları kaydırın. Gönderin için teşekkürler. Beni doğru yerde başlattı. – Xavier

+0

np. ayrıca özel dinleyici paylaşır mısınız? başkalarına da yardımcı olabilir –

2

Yöntemden anında uzaklığı nasıl alacağımı anlayamadım, bunun yerine sayfama yeni bir global eşik ayarlıyorum.

//Override the default horizontalDistanceThreshold of 30 
$.event.special.swipe.horizontalDistanceThreshold = 200; 

jQM'nin eski bir sürümünü kullanıyorum (v1.0 hala ...) bu değişmiş olabilir. Kaydırma olaylarını aramaya başlarsanız kaynağında bulmak kolaydır.

İlgili konular