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

Post on 19-Jun-2015

388 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

2

3

4

5

6

7

8

9

11

12

13

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

15

16

17

18

20

21

22

23

24

if (window.navigator.msPointerEnabled) {

// Pointer events are supported.

}

26

touchstart

touchmove

touchend

27

28

29

30

31

32

33

34

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--;

}

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;

}

}

}

37

38

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

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); }

40

41

42

43

Div №1 Div №2

44

Div

45

Div

46

47

49

50

51

top related