Bazı dokunma olayları ve hareketleri üzerinde çalışıyorum, yakınlaştırma ve döndürme nesnesini yakınlaştırmak istiyorum, sürüklemeyi başarılı bir şekilde yaptım ama jestler bana sorun veriyor. Hareketler çalışıyor, ancak onlar, yakınlaştırma veya uzaklaştırma ya da döndürmeye çalıştığınızda, parmaktan parmağınıza atlarsa, çırpıyorlar.Javascript yakınlaştırma ve gesturechange ve jestend kullanarak döndürme
Referans için benim kodum.
var width = 300; var height = 300; var rotation = 0;
$('.dynamic').live("gesturechange gestureend", function(e){
var orig = e.originalEvent;
if(e.type == 'gesturechange'){
e.preventDefault();
$(this).css("width", parseFloat(width) * orig.scale);
$(this).css("height", parseFloat(height) * orig.scale);
$(this).css("-webkit-transform","rotate(" + ((parseFloat(rotation) + orig.rotation) % 360) + "deg)");
}else if(e.type == 'gestureend'){
a.w[ids] = parseFloat(width) * orig.scale;
a.h[ids] = parseFloat(height) * orig.scale;
a.rotation[ids] = (parseFloat(rotation) + orig.rotation) % 360;
}
});
neyse orada bu pürüzsüz yapmak ve parmaklarından atlayarak engellemek ya da yanlış aldı yaklaşımdır İlke İmza Attı. Bazı ipuçları ve püf noktaları ve muhtaç yılında parmağa parmak atlayarak tuttu neden
şu hareketlerle bir
sürükle benim dokunma olayı gibi görünüyor çözüm müdahale bulundu yardımcı bu çevrede yolu kullanmaz oldu Bunun yerine, hareketler nesnenin üzerindeki dokunuşları saymaktadır ve dokunma başlangıcı, sonu ve değişimini kullanmaktadır.
İşte çözüm çalışır kod
var touches = 0; var width = 300; var height = 300; var rotation = 0;
$('.dynamic').live("touchstart touchmove touchend", function(e){
var orig = e.originalEvent;
if(e.type == 'touchstart'){
if(orig.touches.length == 1){
touches = 1;
}else if(orig.touches.length == 2){
touches = 2;
}
}else if(e.type == 'touchmove'){
e.preventDefault();
if(touches == 2){
$(this).css("width", parseFloat(width) * orig.scale);
$(this).css("height", parseFloat(height) * orig.scale);
$(this).css("-webkit-transform","rotate(" + ((parseFloat(rotation) + orig.rotation) % 360) + "deg)");
}
}else if(e.type == 'touchend'){
if(touches == 2){
a.w[ids] = parseFloat(width) * orig.scale;
a.h[ids] = parseFloat(height) * orig.scale;
a.rotation[ids] = (parseFloat(rotation) + orig.rotation) % 360;
}
}
});
çok teşekkür ederiz! Yapılması gereken normal olan şey, soruya cevap vermek yerine, onu bir cevap olarak göndermektir. Burada – RichieHindle
(Orada hiçbir şey. Kendi soruya cevap yanlış olan) Android 2.x üzerinde ilk yaklaşım işe yaradı mı? Tutam hareketini desteklemek istiyorum ancak ikinci yaklaşım (ince taneli dokunmatik destek) yalnızca iOS (ve Android 3.0/tablet ve WebOS?) Üzerinde çalışıyor. Çözümünüzü gönderdiğiniz için teşekkürler! – ryuutatsuo
yeni olduğum için henüz bana cevap izin vermez –