Maison > Applet WeChat > Développement de mini-programmes > Décrivez brièvement comment l'applet WeChat réalise les différents besoins de gestes

Décrivez brièvement comment l'applet WeChat réalise les différents besoins de gestes

巴扎黑
Libérer: 2017-03-18 17:30:00
original
1803 Les gens l'ont consulté

Les gestes sont toujours très importants pour l'expérience de fonctionnement des utilisateurs de téléphones mobiles, en particulier ceux qui souhaitent certains effets. Afin d'obtenir certains effets de gestes, nous utilisons souvent des applications canevas, interactives et autres ! , aujourd'hui, nous examinerons principalement comment les gestes sont implémentés dans l'applet WeChat. Nous présentons principalement la mise en œuvre des gestes du mini-programme WeChat sous les deux aspects suivants.

  • Partie 1 : Point de contact unique et point multi-touch : Jetons un coup d'œil aux données gestuelles et à la prise en charge des points multi-touch de l'applet WeChat

  • Suivant : Écriture du cours d'analyse wxGesture : analyse de la diapositive gauche, de la diapositive droite, de la diapositive supérieure, de la diapositive inférieure et de l'expansion (article suivant)

Démo

Afin d'étudier si le mini programme prend en charge plusieurs doigts, vous devez utiliser touchstart, touchmove, touchend


[AppleScript] Vue en texte brut Copier le code

// index.wxml
Copier après la connexion


[AppleScript] Affichage en texte brut Copier le code

//index.js
touchstartFn: function(event){
    console.log(event);
  },
  touchmoveFn: function(event){
    console.log(event);
    // console.log("move: PageX:"+ event.changedTouches[0].pageX);
  },
  touchendFn: function(event){
    console.log(event);
    // console.log("move: PageX:"+ event.changedTouches[0].pageX);
  }
Copier après la connexion

Tout d'abord, à propos des points de contact uniques, des points multi-touch

Document officiel : changesTouches : Le format de données des changesTouches est le même que celui des touches. Indique un point de contact modifié, par exemple passer de rien à quelque chose (touchstart), changer de position (touchmove) et passer de quelque chose à rien (touchend, touchcancel).


[AppleScript] Vue en texte brut Copier le code

"changedTouches":[{ 
"identifier":0, "pageX":53, "pageY":14, "clientX":53, "clientY":14
}]
Copier après la connexion
  • Véritable effet machine

Après avoir implémenté la démo ci-dessus, le simulateur ne peut pas voir les données de plusieurs points de contact, vous avez donc besoin d'un véritable appareil pour tester.

Regardez les informations du journal de la vraie machine


Enregistrez les données des points de contact dans l'ordre dans changesTouches, de sorte que l'applet elle-même prenne en charge les gestes multi-points de contact

  • Conclusion

Imagination : puisque les gestes du mini programme prennent en charge le multi-touch , et Si le chemin pertinent peut être obtenu, alors le calcul du chemin pertinent est également réalisable.
Scénario : effets d'interaction multi-touch, dessin au doigt, etc.

Sauvegarde des données des points de contact

Afin de pouvoir analyser le chemin du point tactile. Au moins pour les gestes simples, tels que le balayage vers la gauche, le balayage vers la droite, vers le haut et vers le bas, nous devons enregistrer toutes les données du chemin.
  • Les événements tactiles

Les événements de déclenchement tactile sont divisés en "touchstart", "touchmove " , "touchend", "touchcancel" quatre

  • stocker les données


[AppleScript] Affichage en texte brut Copier le code

var _wxChanges = [];
var _wxGestureDone = false;
const _wxGestureStatus = ["touchstart", "touchmove", "touchend","touchcancel"];
// 收集路径
function g(e){
    if(e.type === "touchstart"){
        _wxChanges = [];
        _wxGestureDone = false;
    }
    if(!_wxGestureDone){
        _wxChanges.push(e);
        if(e.type === "touchend"){
            _wxGestureDone = true;  
        }else if(e.type === "touchcancel"){
            _wxChanges = [];
            _wxGestureDone = true; 
        }
    }
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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