Top Banner
Создание кросс-платформенных приложений – правильное использование touch-events
14

Особенности использования touch events в кроссплатформенной разработке. Михаил Ларченко

Jun 16, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Особенности использования touch events в кроссплатформенной разработке.  Михаил Ларченко

Создание кросс-платформенных приложений – правильное использование touch-events

Page 2: Особенности использования touch events в кроссплатформенной разработке.  Михаил Ларченко

Зачем кроссплатформенные приложения?

Page 3: Особенности использования touch events в кроссплатформенной разработке.  Михаил Ларченко

Инструменты

Page 4: Особенности использования touch events в кроссплатформенной разработке.  Михаил Ларченко

Примеры

Page 5: Особенности использования touch events в кроссплатформенной разработке.  Михаил Ларченко

gestures

Page 6: Особенности использования touch events в кроссплатформенной разработке.  Михаил Ларченко

Javascript обработкаfunction startup() {  var el = document.getElementById(“scrollDiv”);  el.addEventListener("touchstart", handleStart, false);  el.addEventListener("touchend", handleEnd, false);  el.addEventListener("touchcancel", handleCancel, false);  el.addEventListener("touchmove", handleMove, false);}

Page 7: Особенности использования touch events в кроссплатформенной разработке.  Михаил Ларченко

Подводные камни

Page 8: Особенности использования touch events в кроссплатформенной разработке.  Михаил Ларченко

Мультитач

function handleStart(evt) { … var touches = evt.originalEvent.targetTouches; var totalTouches = touches.length; …}

Page 9: Особенности использования touch events в кроссплатформенной разработке.  Михаил Ларченко

Направление движенияvar direction = “”;// “” / vert / hor function handleStart(evt) { … var touches = event.originalEvent.targetTouches; var startcoords = endcoords = touches[0]; // pageX / pageY …}function handleMove(evt) { … var touches = event.originalEvent.targetTouches; var endcoords = touches[0]; …}

If(Math.abs(endcoords.pageX - startcoords.pageX) > Math.abs(endcoords.pageY - startcoords.pageY)) { direction = “hor”;

} else {

direction = “vert”;

}

Page 10: Особенности использования touch events в кроссплатформенной разработке.  Михаил Ларченко

Click vs. Tap

Math.abs(endcoors.pageX – startcoords.pageX) < 10

handleStart:obj = evt.target

handleEnd:

obj.click()

Page 11: Особенности использования touch events в кроссплатформенной разработке.  Михаил Ларченко

Бесполезная прокрутка

If(scrollable.scrollHeight > scrollDiv.offsetHeight())

Page 12: Особенности использования touch events в кроссплатформенной разработке.  Михаил Ларченко

Rubber banding

Вверху – 0Внизу – MaxScroll

handleEnd:

MaxScroll = Высота прокручиваемой области - Высота видимого окна

Page 13: Особенности использования touch events в кроссплатформенной разработке.  Михаил Ларченко

Готовые решения

Page 14: Особенности использования touch events в кроссплатформенной разработке.  Михаил Ларченко

Все!• Сейчас ваши вопросы…

Контакты• http://mobila.name/