Maison > interface Web > js tutoriel > le corps du texte

Analyse d'événements JavaScript dans les compétences touch screens_javascript

WBOY
Libérer: 2016-05-16 16:15:24
original
1193 Les gens l'ont consulté

Les exemples de cet article décrivent les événements JavaScript dans les écrans tactiles. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :

1. Événement tactile

ontouchstart
ontouchmove
ontouchend
ontouchcancel Actuellement, tous les navigateurs mobiles prennent en charge ces quatre événements tactiles, y compris IE. Étant donné que les écrans tactiles prennent également en charge MouseEvent, leur ordre doit être noté : touchstart → mouseover → mousemove → mousedown → mouseup → click1

Les exemples sont les suivants :

/**
* onTouchEvent
*/
var div = document.getElementById("div");
//touchstart类似mousedown
div.ontouchstart = function(e){
//事件的touches属性是一个数组,其中一个元素代表同一时刻的一个触控点,
//从而可以通过touches获取多点触控的每个触控点
//由于我们只有一点触控,所以直接指向[0]
var touch = e.touches[0];
//获取当前触控点的坐标,等同于MouseEvent事件的clientX/clientY
var x = touch.clientX;
var y = touch.clientY;
};
//touchmove类似mousemove
div.ontouchmove = function(e){
//可为touchstart、touchmove事件加上preventDefault从而阻止触摸时,
//浏览器的缩放、滚动条滚动等
e.preventDefault();
};
//touchend类似mouseup
div.ontouchup = function(e){
//nothing to do
};
Copier après la connexion

2. Événements gestuels Les gestes font référence à l'utilisation du multi-touch pour effectuer des opérations telles que la rotation et l'étirement, telles que l'agrandissement et la rotation d'images et de pages Web. Les événements gestuels sont déclenchés uniquement lorsque deux doigts ou plus se touchent en même temps. Une chose à laquelle nous devons prêter attention concernant la mise à l'échelle est les coordonnées de position de l'élément : nous utilisons généralement offsetX, getBoundingClientRect et d'autres méthodes pour obtenir les coordonnées de position de l'élément. Cependant, dans les navigateurs mobiles, la page est souvent mise à l'échelle pendant l'utilisation, et les coordonnées de l'élément mis à l'échelle changeront. La réponse est que cela varie. Utilisons un scénario pour illustrer ce problème : une fois la page A chargée, JavaScript obtient les coordonnées de l'élément dans le document sous la forme (100 100), puis l'utilisateur zoome sur la page. À ce stade, JavaScript est utilisé pour afficher le résultat. à nouveau les coordonnées de l'élément, qui sont toujours (100 100). Cependant, la zone réactive de l'élément sur l'écran sera décalée en fonction de la mise à l'échelle. Vous pouvez ouvrir la démo du jeu Brick Breaker, attendre que la page soit complètement chargée, puis zoomer. À ce stade, vous constaterez que même si votre doigt touche en dehors de la zone « Toucher ici », vous pouvez toujours contrôler le planche à billes car la zone est décalée. Le décalage persistera à moins que la page ne soit actualisée ou que la mise à l'échelle ne reprenne.

/**
* onGestureEvent
*/
var div = document.getElementById("div");
div.ongesturechange = function(e){
//scale代表手势产生的缩放比例,小于1是缩小,大于1是放大,原始为1
var scale = e.scale;
//rotation代表旋转手势的角度,值区间[0,360],正值顺时针旋转,负值逆时针
var angle = e.rotation;
};
Copier après la connexion

3. Détection de la gravité La détection de la gravité est relativement simple. Il vous suffit d'ajouter l'événement onorientationchange au nœud body. Dans ce cas, la valeur représentant l'orientation actuelle du téléphone mobile est obtenue à partir de la propriété window.orientation. La liste de valeurs de window.orientation est la suivante :

0 : Même sens que lors du premier chargement de la page
-90 : Rotation de 90° dans le sens des aiguilles d'une montre par rapport à la direction d'origine
180 : tourné à 180°
90 : Tourné à 90° dans le sens inverse des aiguilles d'une montre. D'après mes tests, Android 2.1 ne prend pas encore en charge la détection de gravité. Les événements ci-dessus sont les événements actuels sur écran tactile. Ces événements n'ont pas encore été intégrés dans la norme, mais ils sont déjà largement utilisés. J'ai Android 2.1 et je ne l'ai pas testé dans d'autres environnements.

J'espère que cet article sera utile à la conception de la programmation JavaScript de chacun.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!