Марина Степанова "Работа с pointer-событиями в ie10 на...

52

Upload: yandex

Post on 19-Jun-2015

388 views

Category:

Technology


2 download

DESCRIPTION

С выходом планшетов на Windows8 практически любому JavaScript-разработчику придется рано или поздно адаптировать свой сайт под новую систему событий IE10. API Яндекс.Карт уже прошел этот нелегкий путь. Было рассказано про общую концепцию MSPointerEvents, вы узнаете про инструменты для разработки и тестирования, как «скрестить ужа с ежом» (переписать свой код под IE10), были раскрыты особенности разработки под IE10 на конкретных примерах кода.

TRANSCRIPT

Page 1: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"
Page 2: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

2

Page 3: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

3

Page 4: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

4

Page 5: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

5

Page 6: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

6

Page 7: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

7

Page 8: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

8

Page 9: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

9

Page 10: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"
Page 11: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

11

Page 12: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

12

Page 13: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

13

function onPointerDown (event) { if (!gesture) { gesture = new MSGesture(); gesture.target = targetElement; } gesture.addPointer(event.pointerId); }

Page 14: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"
Page 15: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

15

Page 16: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

16

Page 17: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

17

Page 18: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

18

Page 19: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"
Page 20: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

20

Page 21: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

21

Page 22: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

22

Page 23: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

23

Page 24: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

24

if (window.navigator.msPointerEnabled) {

// Pointer events are supported.

}

Page 25: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"
Page 26: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

26

touchstart

touchmove

touchend

Page 27: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

27

Page 28: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

28

Page 29: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

29

Page 30: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

30

Page 31: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

31

Page 32: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

32

Page 33: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

33

Page 34: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

34

Page 35: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

35

document.addEventListener('MSPointerDown', onPointerDown, true);

document.addEventListener('MSLostPointerCapture', onPointerEnd, true);

document.addEventListener('MSPointerUp', onPointerEnd, true);

document.addEventListener('MSPointerCancel', onPointerEnd, true);

document.addEventListener('MSPointerOut', onPointerEnd, true);

function onPointerDown (e) {

touches.push(e);

pointerNumber++;

}

function onPointerEnd (e) {

if (inTouches(e)) {

removeByPointerId(e.pointerId);

pointerNumber--;

}

Page 36: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

36

function inTouches (e) {

var pointerId = e.pointerId;

for (var i = 0, l = touches.length; i < l; i++) {

if (touches[i].pointerId == pointerId) {

return true;

}

}

return false;

}

function removeByPointerId (pointerId) {

for (var i = 0, l = touches.length; i < l; i++) {

if (touches[i].pointerId == pointerId) {

touches.splice(i, 1);

return;

}

}

}

Page 37: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

37

Page 38: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

38

function onPointerDown (event) { if (!gesture) { gesture = new MSGesture(); gesture.target = targetElement; } gesture.addPointer(event.pointerId); }

Page 39: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

39

var gestures = {}; function onPointerDown (event) { var pointerType = event.pointerType;

if (!gestures[pointerType]) { gestures[pointerType] = new MSGesture(); gestures[pointerType].target = targetElement; } gestures[pointerType].addPointer(event.pointerId); }

Page 40: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

40

Page 41: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

41

Page 42: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

42

Page 43: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

43

Div №1 Div №2

Page 44: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

44

Div

Page 45: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

45

Div

Page 46: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

46

Page 47: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

47

Page 48: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"
Page 49: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

49

Page 50: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

50

Page 51: Марина Степанова "Работа с Pointer-событиями в IE10 на примере API Яндекс.Карт"

51