używam jQuery Mobile i stworzył coś, co nieco przypomina Android Holo zakładkach:Próbując zapobiec jQueryMobile gest machnięcia z pęcherzyków, ale to nie działa
W celu uzyskania gest machnięcia pracować do przełączania między kartami, jest to kod Dodałem:
$("#myPage #pageTabs").on('swipeleft swiperight', function(e){
e.stopPropagation();
e.preventDefault();
});
$("#myPage").on('swipeleft', function(){
ui.activities.swipe(1);
}).on('swiperight', function(){
ui.activities.swipe(-1);
});
z HTML zakładkach przypominające:
<div id="pageTabs">
<div class="tab">
<a href="#" data-dayOfMonth="26">Thu</a>
</div>
<div class="tab">
<a href="#" data-dayOfMonth="27">Fri</a>
</div>
<div class="tab">
<a href="#" data-dayOfMonth="28" data-meridian="am">Sat AM</a>
</div>
<div class="tab">
<a href="#" data-dayOfMonth="28" data-meridian="pm">Sat PM</a>
</div>
<div class="tab">
<a href="#" data-dayOfMonth="29">Sun</a>
</div>
</div>
Słucham gestu machnięcia na poziomie strony, ponieważ div[data-role=content]
może czasami nie wypełniać ekranu pionowo, jeśli nie ma wystarczającej zawartości, aby to zrobić. Gdybym słuchał tego diva i nie zakrywał ekranu, a przesuwałbyś się blisko dna, wydarzenie nie mogło wystrzelić tego diva, to byłoby na stronie głównej (div[data-role=page]
).
Oto trójwymiarowa strona Firefoksa tej strony, potwierdzająca powyższe twierdzenie. Mam adnotacją div[data-role=content]
:
Dlatego słucham za to na poziomie strony; ale ponieważ liczba zakładek może przewijać się poza rzutnię (jak widać powyżej: niedziela jest poza ekranem po prawej), chciałbym, żeby użytkownik mógł również przewijać w poziomie. Mam już działające poziome przewijanie (to tylko niektóre proste CSS), ale problem polega na tym, że nawet z moim e.stopPropagation()
widzianym powyżej gest przesuwania jest bulgotanie do elementu strony, a mój gest machnięcia uniemożliwia płynne przewijanie był dostępny, zanim dodałem gest machnięcia.
Czy nie rozumiem, jak działa bulgotanie zdarzeń lub jak go zatrzymać w tym scenariuszu?
'mógłby e.target' pomóc? – Omar
W jaki sposób? Czy mógłbyś to sprecyzować? –
Mam na myśli słuchanie elementu docelowego, w którym wystąpiło zdarzenie, i zgodnie z tym wykonanie kodu http://fiddle.jshell.net/Palestinian/zbPZh/show/ – Omar