iPhone / Android обнаружение пролистывания для мобильного браузера - PullRequest
2 голосов
/ 30 июня 2010

Можно ли обнаружить, что область просмотра перетаскивается событием касания?

Используя следующий код, я могу определить, где палец коснулся экрана, с какого узла началось событие и куда оно было перетащено. Это решает одну из проблем, но мне бы очень хотелось определить, когда пользователь перетянул страницу / окно / область просмотра вниз.

Чтобы попытаться уточнить, что я пытаюсь сделать: я хотел бы смоделировать операцию обновления в Tweetie 2 / Twitter для iPhone, но в HTML5 и JavaScript.

<script> 
window.ontouchmove = function(e){
  if(e.touches.length == 1){ // Only deal with one finger
    var touch = e.touches[0]; // Get the information for finger #1
    var node = touch.target; // Find the node the drag started from
    $("p:last").html(
        "clienty: " + touch.clientY + "<br/>" +
        "screenY: " + touch.screenY + "<br/>" +
        "pageY: "   + touch.pageY
        );
  }
}
</script> 

Ответы [ 2 ]

6 голосов
/ 11 августа 2010

В событии touchmove свойства event.targetTouches [0] .pageX и .pageY дадут вам текущую индикацию сенсорных координат. Вам нужно будет сохранить исходное местоположение касания в touchstart, обновить текущее местоположение в touchmove, а затем в touchend вы определите, было ли касание вверх, вниз, влево, вправо, рассчитав различия по осям x и y между начальная и конечная локации. Длина массива касаний позволит вам узнать, будет ли это касание одним или двумя пальцами.

2 голосов
/ 30 июня 2010

Возможно, вы захотите проверить Sencha Touch .Это мобильная инфраструктура, которая поддерживает эти события, поэтому вам не нужно предоставлять собственную поддержку.

...