Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Ipad ios 6.01 touchmove Event - welches Event wird bei deceleration gefeuert?

Ipad ios 6.01 touchmove Event - welches Event wird bei deceleration gefeuert?

fluppy
fluppy12.01.1302:26
Hi,

Ich mache in einer fullscreen- Webseite bestimmte Bereiche touchmovable, durch setzen mit CSS:
-webkit-overflow-scrolling:touch;

Und andere Bereiche deaktiviere ich, indem ich per JavaScript die Events abbreche:
$(Elemente).bind('touchmove touchstart touchend',function(e){
e.preventDefault();
});

Nun ist es leider so, dass e.preventdefault nicht mehr aufgerufen wird, sobald ich den touchmove-Vorgang beende, also die "deceleration"-Phase / scroll-fadeout einsetzt. Sobald der Finger vom Display entfernt wird, bewegen sich also Elemente, die sich nicht bewegen sollten und Position fixen fixiert sind.

Wie kann ich Problem beheben, oder mit welchem Event listener greife ich die deceleration-Phase ab? Habe schon gegoogelt nach deceleration touchmove Event etc. Aber nix brauchbares gefunden. Die Apple doch geben da scheinbar auch nix her.
0

Kommentare

Umac_de12.01.1311:16
Mal
$(Elemente).bind('touchmove touchstart touchend scroll',function(e){
e.preventDefault();
});
versucht?
0
fluppy
fluppy12.01.1313:36
Ja, hat keine Änderung gebracht.
0
fluppy
fluppy15.01.1318:37
Der css-Eintrag -webkit-overflow-scrolling:touch; bewirkt wohl, dass Safari die Reihenfolge der Container kaputt macht. Es ist also noch buggy. Der einzige Weg für mich war, dieses halbe Feature zu deaktivieren:
-webkit-overflow-scrolling:auto;

Dann hat man zwar kein butterweiches Scrolling mehr, dafür aber wieder die volle Kontrolle und alle events. Man wird wohl noch zwei Jahre warten müssen, bis es richtig funktioniert. Bis die Containerstruktur nicht mehr geändert wird und auch während der Decceleration-Phase ein Step-Event gefeuert wird. Für einfach gelayerte Seiten funktioniert es schon.
0
fluppy
fluppy18.01.1321:58
Der CCS-Eintrag muss ganz entfernt werden, um scrollTo-Scrolling komplett zu deaktivieren. Ein "-webkit-overflow-scrolling: none;" gibt es seltsamerweise nicht.

Und überhaupt per scrollTo Elemente zu bewegen auf einer gelayerten AJAX-Seite bringt's nicht wirklich. Besser Scrollfunktionalität an Positionsverschiebung x/y knüpfen.
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.