Czy istnieje sposób, aby pracować z klasą Mootools "Przeciągnij" na telefonie komórkowym Safari? Proszę nie łącz mnie z innymi frameworkami.Przeciągnij z mootools na telefonie komórkowym
Odpowiedz
Czy mógłbyś spróbować https://github.com/kamicane/mootools-touch?
Naprawiłem to sam. Jest to tak proste, jak odwzorowywanie zdarzeń myszy na zdarzenia dotykowe.
Więc rozwiązaniem jest poszukiwanie & wymienić:
mousedown -> touchstart
mouseup -> touchend
mousemove -> touchmove
Tu było moje rozwiązanie do tworzenia Mootools przeciągnij zdarzenia dotykowe wsparcie. Metoda ta nie wymaga mnie do edycji pliku MooTools więcej ponieważ użyłem Class.refactor (To jest testowany tylko z Mootools v.1.3.1) - to też nie łamie zwykłego zdarzenia click
Class.refactor(Drag,
{
attach: function(){
this.handles.addEvent('touchstart', this.bound.start);
return this.previous.apply(this, arguments);
},
detach: function(){
this.handles.removeEvent('touchstart', this.bound.start);
return this.previous.apply(this, arguments);
},
start: function(event){
document.body.addEvents({
touchmove: this.bound.check,
touchend: this.bound.cancel
});
this.previous.apply(this, arguments);
},
check: function(event){
if (this.options.preventDefault) event.preventDefault();
var distance = Math.round(Math.sqrt(Math.pow(event.page.x - this.mouse.start.x, 2) + Math.pow(event.page.y - this.mouse.start.y, 2)));
if (distance > this.options.snap){
this.cancel();
this.document.addEvents({
mousemove: this.bound.drag,
mouseup: this.bound.stop
});
document.body.addEvents({
touchmove: this.bound.drag,
touchend: this.bound.stop
});
this.fireEvent('start', [this.element, event]).fireEvent('snap', this.element);
}
},
cancel: function(event){
document.body.removeEvents({
touchmove: this.bound.check,
touchend: this.bound.cancel
});
return this.previous.apply(this, arguments);
},
stop: function(event){
document.body.removeEvents({
touchmove: this.bound.drag,
touchend: this.bound.stop
});
return this.previous.apply(this, arguments);
}
});
niesamowite, +1 - jeśli zostało to przetestowane w fazie produkcji i działa, to dlaczego nie modować oryginalnych klas i wysłać żądanie ściągnięcia do mootools - zamiast tego więcej? Urządzenia dotykowe są znacznie bardziej rozpowszechnione i przydaje się to, aby wyjść z pudełka. –
Świetne !! Czy wiesz, jak wyłączyć przewijanie podczas przeciągania zdarzenia dotykowego? Moje okno przewija się w tym samym czasie, co ciągnie ... – Sergio
W rzeczywistości jest problem z powodu błędu Androida, zobacz http://uihacker.blogspot.it/2011/01/android-touchmove-event-bug.html i http : //code.google.com/p/android/issues/detail? id = 5491. Zasadniczo musisz wywołać event.preventDefault() w wywołaniu zwrotnym touchmove, a następnie dostosować rzeczy, aby poprawnie usunąć obsługę zdarzeń – abidibo
- 1. rozmiar czcionki na telefonie komórkowym
- 2. jQuery onclick nie działa na telefonie komórkowym
- 3. Uruchamianie programu three.js na telefonie komórkowym z Chrome
- 4. scrollTop w telefonie komórkowym Safari nie działa
- 5. Używanie document.execCommand ("kopia") w telefonie komórkowym
- 6. ustaw krawędź etykiety w telefonie komórkowym
- 7. Twilio sms nie przychodzi w telefonie komórkowym
- 8. Dodatek do tła: naprawiony nie działa na Androidzie/telefonie komórkowym
- 9. Anulowanie echa akustycznego za pomocą Adobe Air na telefonie komórkowym
- 10. Google maps iframe wyłącza przewijanie dotknięciem na telefonie komórkowym
- 11. iframe zapobiega przewijaniu iScroll na telefonie komórkowym Safari
- 12. Android - Stwórz RESTful WebService - Hostuj go na telefonie komórkowym
- 13. Horrible Canvas GetImageData()/PutImageData() wydajność na telefonie komórkowym
- 14. Włącz kodek G729 w telefonie komórkowym dla iPhone'a
- 15. Odtwarzanie (i odtwarzanie) dźwięku w telefonie komórkowym Safari
- 16. Automatyczne odtwarzanie tagów dźwiękowych Nie działa w telefonie komórkowym
- 17. Jak programowo znaleźć szerokość urządzenia w telefonie komórkowym Phonegap/JQuery
- 18. Przycisk HTML5 uruchamiający wprowadzanie danych w telefonie komórkowym
- 19. Java IDE * na * telefonie iPhone?
- 20. Łącza rozwijane na Twitterze Bootstrap (v2.2.1) nie działają na telefonie komórkowym.
- 21. Na telefonie komórkowym, w jaki sposób uzyskać "Enter", aby przesłać formularz w formacie wejściowym type = "number"?
- 22. Ukryte funkcje MooTools
- 23. MooTools: domready vs load
- 24. window.onerror nie działa w telefonie komórkowym - jak radzić sobie z nieobsługiwanymi wyjątkami?
- 25. String HTML Mootools Element
- 26. Moja aplikacja w telefonie komórkowym wygląda na mniejszą w telefonach z Androidem HD, telefonach HDPI i XHDPI.
- 27. Mootools ustawić przycisk radiowy sprawdzone
- 28. @media zapytanie nie działa w telefonie komórkowym. Działa dobrze w Chrome
- 29. Synchronizacja Gmaila na telefonie z Androidem
- 30. Skompiluj kod C na telefonie z Androidem
To dla mootools 1.2 i używam 1.3. Używam także wielu komponentów opartych na natywnej klasie Drag, więc wolę poprawkę dla tej klasy. Dzięki! – aartiles