Maison > interface Web > js tutoriel > méthode js pour implémenter les compétences de surveillance des événements sur écran tactile coulissant_javascript

méthode js pour implémenter les compétences de surveillance des événements sur écran tactile coulissant_javascript

WBOY
Libérer: 2016-05-16 16:00:54
original
1479 Les gens l'ont consulté

L'exemple de cet article décrit comment implémenter la surveillance des événements sur écran tactile coulissant dans js. Partagez-le avec tout le monde pour votre référence. La méthode de mise en œuvre spécifique est la suivante :

function span_move_fun(){
 var span = document.getElementById("move_k");
 var span_left = $(span).offset().left;
 var span_top = $(span).offset().top;
 var start_left = $(span).offset().left;
 var start_top = $(span).offset().top;
 span.addEventListener('touchstart', function(event) {
  event.preventDefault();
  if (event.targetTouches.length == 1) {
     var touch = event.targetTouches[0];
     span.style.position = "absolute";
  span_top = $(this).offset().top;
  span_left = $(this).offset().left;
  start_top = touch.pageY
  start_left = touch.pageX
     var left = parseFloat(touch.pageX - start_left + span_left-30);
     var top = parseFloat(touch.pageY - start_top + span_top-73);
  span.style.left = String(left) + 'px';
  span.style.top = String(top) + 'px';
     }
   });
   span.addEventListener('touchmove', function(event) {
  event.preventDefault();
  if (event.targetTouches.length == 1) {
  var touch = event.targetTouches[0];
  span.style.position = "absolute";
  var left = parseFloat(touch.pageX - start_left + span_left-30);
     var top = parseFloat(touch.pageY - start_top + span_top-73);
  span.style.left = String(left) + 'px';
  span.style.top = String(top) + 'px';
  }
 });
   span.addEventListener('touchend', function(event) {
   var touch = event.changedTouches[0];
   if(parseFloat(touch.pageX - start_left + span_left-30) <= -5 || parseFloat(touch.pageX - start_left + span_left-30) >= 620 || parseFloat(touch.pageY - start_top + span_top-73) <= -38 || parseFloat(touch.pageY - start_top + span_top-73) >= 587){
    span.style.left = String(span_left-30) + 'px';
  span.style.top = String(span_top-73) + 'px';
   }
  event.stopPropagation();
 });
}
Copier après la connexion

Les événements d'écran tactile coulissant gauche et droit de JS comprennent principalement trois événements : touchstart, touchmove et touchend. Les attributs les plus importants de ces trois événements sont pageX et pageY, qui représentent les coordonnées X et Y.

touchstart déclenche un événement lorsqu'un toucher démarre

touchend déclenche un événement à la fin du contact

L'événement touchmove est plutôt étrange. Logiquement parlant, cet événement devrait être déclenché en continu pendant le processus tactile. Cependant, dans mon Android 1.5, il est déclenché une fois après le déclenchement de touchstart, puis les autres sont déclenchés presque en même temps. temps comme touche.

Ces trois événements ont tous un attribut timeStamp. En regardant l'attribut timeStamp, vous pouvez voir que l'ordre est touchstart -> touchmove ->touchmove -> … ->

Ce qui suit est un exemple de code :

document.getElementsByTagName_r('body')[0].addEventListener('touchstart',function(e){
    nStartY = e.targetTouches[0].pageY;
    nStartX = e.targetTouches[0].pageX;
});
document.getElementsByTagName_r('body')[0].addEventListener('touchend',function(e){
    nChangY = e.changedTouches[0].pageY;
    nChangX = e.changedTouches[0].pageX;
});
Copier après la connexion

PS :
1. L’événement tactile et l’événement clic ne seront pas déclenchés en même temps. Les appareils mobiles d’aujourd’hui sont meilleurs et ont complètement évité ce problème.

2. Faites attention au déplacement des positions de début et de fin du toucher. Si le déplacement est trop faible, aucune mesure ne doit être prise.

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