


Bases du développement de mini-programmes : opération coulissante (10)
Dans la méthode d'interaction actuelle des applications mobiles, la plus courante est l'opération de glissement. Glisser vers la gauche et la droite pour changer de page, écarter les doigts pour agrandir les images, etc. se font tous par des opérations de glissement.
Les événements pertinents fournis par défaut par l'applet WeChat sont les suivants :
Événements d'opération liés au toucher
tapCorrespondant aux opérations de clic, longtap est également fourni pour prendre en charge les opérations d'appui long. Celles-ci sont relativement simples, je n'entrerai donc pas dans les détails.
touchmove correspond à l'opération de glissement, et vous pouvez répondre à l'opération de glissement via bindtouchmove
.
//wxml <view id="id" bindtouchmove="handletouchmove" style = "width : 100px; height : 100px; background : #167567;"> </view> //js Page({ handletouchmove: function(event) { console.log(event) }, })
Lorsque vous appuyez et maintenez l'étiquette view
et faites glisser la souris, l'événement de glissement sera déclenché en continu jusqu'à ce que la souris soit relâchée Lorsque la souris sort du view
. zone d'étiquette, l'événement sera toujours déclenché .
Opération glisser
En écoutant les événements de glissement, certaines fonctions pratiques peuvent être implémentées. Par exemple, les utilisateurs qui ont utilisé l'iPhone connaissent assistivetouch, un bouton de raccourci sur le bureau, qui permet de faire glisser le bouton. vers n'importe où sur le bureau. Pour plus de commodité, un cercle est utilisé pour représenter le bouton.
//wxml <view id="id" class = "ball" bindtouchmove="handletouchmove" style = "width : 60px; height : 60px; background : #545345;"> </view> //wxss .ball { box-shadow:2px 2px 10px #AAA; border-radius: 20px; position: absolute; } //js Page({ handletouchmove: function(event) { console.log(event) }, })
Voir les suivis
Eh bien, le bouton est un peu moche, mais ce n'est pas le sujet. L'idée de mise en œuvre de l'opération glisser-déposer est également très simple. Lorsqu'un événement coulissant est déclenché, l'objet événement contiendra les informations de coordonnées de la position tactile actuelle, qui peuvent être obtenues via event.touches[0].pageX
et event.touches[0].pageY
. est-ce que touche un tableau ? La réponse est de prendre en charge plusieurs Touch (je ne sais pas comment simuler le multi-touch sur un ordinateur). Ensuite, réglez la position du bouton sur la position tactile, ce qui devrait obtenir l'effet souhaité. Essayons.
Définissez les données de position du bouton ballBottom et ballRight dans la page et liez-les aux attributs correspondants de la vue.
//wxml <view id="id" class = "ball" bindtouchmove="handletouchmove" style = "width : 60px; height : 60px; background : #545345; top:{{ballTop}}px; left: {{ballLeft}}px"> </view> //js Page({ data: { ballTop: 0, ballLeft: 0, }, handletouchmove: function(event) { console.log(event) }, })
Ensuite, mettez à jour les données de position du bouton dans la méthode handletouchmove
handletouchmove: function(event) { console.log(event) this.setData ({ ballTop: event.touches[0].pageY, ballLeft: event.touches[0].pageX, }); },
On constate que l'effet peut fondamentalement être obtenu, mais il y a deux problèmes. La première est que le bouton sera déplacé hors du bord de l’écran et que le deuxième bouton sera toujours en bas à droite de la souris.
Ensuite, ajoutez un jugement sur les limites de l'écran et corrigez la position du bouton. La taille de l'écran peut être obtenue via wx.getSystemInfo
.
Le code complet est le suivant :
Page({ data: { ballTop: 0, ballLeft: 0, screenHeight:0, screenWidth:0 }, onLoad: function () { //获取屏幕宽高 var _this = this; wx.getSystemInfo({ success: function (res) { _this.setData({ screenHeight: res.windowHeight, screenWidth: res.windowWidth, }); } }); }, handletouchmove: function(event) { console.log(event) let pageX = event.touches[0].pageX; let pageY = event.touches[0].pageY; //屏幕边界判断 if (pageX < 30 || pageY < 30) return; if (pageX > this.data.screenWidth - 30) return; if (pageY > this.data.screenHeight - 30) return; this.setData ({ ballTop: event.touches[0].pageY - 30, ballLeft: event.touches[0].pageX - 30, }); }, })
Exécutez-le à nouveau, tout va bien.
Reconnaissance gestuelle
Diverses opérations gestuelles peuvent être reconnues en traitant des opérations de glissement, telles que le glissement vers la gauche et la droite, etc. L'idée est également très simple, il suffit de lier les événements touchstart et touchmove, puis d'identifier et de calculer les informations de coordonnées (telles que current.PageX - last.PageX < 0 est considéré comme glissant vers la gauche)
//wxml <view id="id" class = "ball" bindtap = "handletap" bindtouchstart = "handletouchtart" bindtouchmove="handletouchmove" style = "width : 100%px; height : 40px;"> {{text}} </view> //js Page({ data: { lastX: 0, lastY: 0, text : "没有滑动", }, handletouchmove: function(event) { console.log(event) let currentX = event.touches[0].pageX let currentY = event.touches[0].pageY console.log(currentX) console.log(this.data.lastX) let text = "" if ((currentX - this.data.lastX) < 0) text = "向左滑动" else if (((currentX - this.data.lastX) > 0)) text = "向右滑动" //将当前坐标进行保存以进行下一次计算 this.data.lastX = currentX this.data.lastY = currentY this.setData({ text : text, }); }, handletouchtart:function(event) { console.log(event) this.data.lastX = event.touches[0].pageX this.data.lastY = event.touches[0].pageY }, handletap:function(event) { console.log(event) }, })
Exécutez le programme, et lorsque vous glissez vers la gauche, view
affichera "Swipe to the left", et la même chose s'applique à droite.
Identifier les glissements à gauche et à droite et les interactions de haut en bas en même temps
Parfois, vous souhaitez identifier les glissements à gauche et à droite et les glissements de haut en bas en même temps. comparez la différence sur l'axe X avec la différence sur l'axe Y. La plus grande différence est la direction de glissement.
handletouchmove: function(event) { console.log(event) let currentX = event.touches[0].pageX let currentY = event.touches[0].pageY let tx = currentX - this.data.lastX let ty = currentY - this.data.lastY let text = "" //左右方向滑动 if (Math.abs(tx) > Math.abs(ty)) { if (tx < 0) text = "向左滑动" else if (tx > 0) text = "向右滑动" } //上下方向滑动 else { if (ty < 0) text = "向上滑动" else if (ty > 0) text = "向下滑动" } //将当前坐标进行保存以进行下一次计算 this.data.lastX = currentX this.data.lastY = currentY this.setData({ text : text, }); },
Dans les applications réelles, lorsqu'un certain geste est déclenché, le geste sera reconnu jusqu'à ce que l'utilisateur relâche la souris ou le doigt. Par exemple, lorsque l'utilisateur déclenche le geste de balayage vers la gauche puis glisse vers le bas, l'utilisateur doit toujours suivre le geste de balayage vers la gauche.
Une marque peut être définie pour enregistrer le premier geste reconnu. Si le geste a été reconnu, les opérations de glissement ultérieures peuvent être ignorées jusqu'à ce que l'utilisateur relâche la souris ou le doigt. La libération de l'opération de la souris ou du doigt peut être gérée en liant l'événement handletouchend
.
Page({ data: { lastX: 0, lastY: 0, text : "没有滑动", currentGesture: 0, }, handletouchmove: function(event) { console.log(event) if (this.data.currentGesture != 0){ return } let currentX = event.touches[0].pageX let currentY = event.touches[0].pageY let tx = currentX - this.data.lastX let ty = currentY - this.data.lastY let text = "" //左右方向滑动 if (Math.abs(tx) > Math.abs(ty)) { if (tx < 0) { text = "向左滑动" this.data.currentGesture = 1 } else if (tx > 0) { text = "向右滑动" this.data.currentGesture = 2 } } //上下方向滑动 else { if (ty < 0){ text = "向上滑动" this.data.currentGesture = 3 } else if (ty > 0) { text = "向下滑动" this.data.currentGesture = 4 } } //将当前坐标进行保存以进行下一次计算 this.data.lastX = currentX this.data.lastY = currentY this.setData({ text : text, }); }, handletouchtart:function(event) { console.log(event) this.data.lastX = event.touches[0].pageX this.data.lastY = event.touches[0].pageY }, handletouchend:function(event) { console.log(event) this.data.currentGesture = 0 this.setData({ text : "没有滑动", }); }, })
Multi-touch
Étant donné que le multi-touch nécessite un véritable appareil pour être testé et que mon application est toujours en cours de demande, je ne peux que reporter l'explication. Voici une idée générale. Par exemple, en ouvrant les doigts et en écartant les doigts , vous pouvez déterminer la direction de déplacement des deux points de contact respectivement. Par exemple, le point de contact de gauche glisse vers la gauche. , et le point de contact à droite glisse vers la droite. Autrement dit, cela peut être jugé comme une opération d'écartement des doigts.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Gestion des sauts de page et du routage PHP dans le développement de mini-programmes Avec le développement rapide des mini-programmes, de plus en plus de développeurs commencent à combiner PHP avec le développement de mini-programmes. Dans le développement de petits programmes, le saut de page et la gestion du routage sont des éléments très importants, qui peuvent aider les développeurs à réaliser des opérations de commutation et de navigation entre les pages. En tant que langage de programmation côté serveur couramment utilisé, PHP peut bien interagir avec les mini-programmes et transférer des données. Examinons en détail la gestion des sauts de page et du routage de PHP dans les mini-programmes. 1. Base de saut de page

Gestion des autorisations PHP et définition des rôles des utilisateurs dans le développement de mini-programmes Avec la popularité des mini-programmes et l'expansion de leur champ d'application, les utilisateurs ont mis en avant des exigences plus élevées en matière de fonctions et de sécurité des mini-programmes. Parmi eux, la gestion des autorisations et la définition des rôles des utilisateurs. sont un élément important pour assurer la sécurité des mini-programmes. L'utilisation de PHP pour la gestion des autorisations et la définition des rôles des utilisateurs dans les mini-programmes peut protéger efficacement les données et la confidentialité des utilisateurs. Ce qui suit présente comment implémenter cette fonction. 1. Mise en œuvre de la gestion des autorisations La gestion des autorisations fait référence à l'octroi de différentes autorisations de fonctionnement en fonction de l'identité et du rôle de l'utilisateur. en petit

Comment développer et publier des mini-programmes dans uni-app Avec le développement de l'Internet mobile, les mini-programmes sont devenus une direction importante dans le développement d'applications mobiles. En tant que cadre de développement multiplateforme, uni-app peut prendre en charge le développement simultané de plusieurs petites plateformes de programmes, telles que WeChat, Alipay, Baidu, etc. Ce qui suit présentera en détail comment utiliser uni-app pour développer et publier de petits programmes, et fournira quelques exemples de code spécifiques. 1. Préparation avant de développer de petits programmes. Avant de commencer à utiliser uni-app pour développer de petits programmes, vous devez effectuer quelques préparatifs.

Mise en cache des données PHP et stratégies de mise en cache dans le développement de mini-programmes Avec le développement rapide des mini-programmes, de plus en plus de développeurs commencent à prêter attention à la manière d'améliorer les performances et la vitesse de réponse des mini-programmes. L'une des méthodes d'optimisation importantes consiste à utiliser la mise en cache des données pour réduire les accès fréquents à la base de données et aux interfaces externes. En PHP, nous pouvons utiliser diverses stratégies de mise en cache pour implémenter la mise en cache des données. Cet article présentera les principes de la mise en cache des données en PHP et fournira des exemples de codes pour plusieurs stratégies de mise en cache courantes. 1. Principe de mise en cache des données La mise en cache des données fait référence au stockage des données en mémoire pour

Protection de la sécurité PHP et prévention des attaques dans le développement de mini-programmes Avec le développement rapide de l'Internet mobile, les mini-programmes sont devenus une partie importante de la vie des gens. En tant que langage de développement back-end puissant et flexible, PHP est également largement utilisé dans le développement de petits programmes. Cependant, les questions de sécurité ont toujours été un aspect auquel il faut prêter attention lors de l’élaboration des programmes. Cet article se concentrera sur la protection de la sécurité PHP et la prévention des attaques dans le développement de petits programmes, et fournira quelques exemples de code. XSS (cross-site scripting Attack) empêche les attaques XSS lorsque des pirates informatiques injectent des scripts malveillants dans des pages Web

Aujourd'hui, nous allons apprendre comment implémenter le menu déroulant développé en PHP dans l'applet WeChat. Le mini programme WeChat est une application légère que les utilisateurs peuvent utiliser directement dans WeChat sans téléchargement ni installation, ce qui est très pratique. PHP est un langage de programmation back-end très populaire, et c'est également un langage qui fonctionne bien avec les mini-programmes WeChat. Voyons comment utiliser PHP pour développer des menus déroulants dans les mini-programmes WeChat. Tout d’abord, nous devons préparer l’environnement de développement, y compris PHP, les outils de développement d’applets WeChat et les serveurs. alors nous

Introduction aux effets d'animation de pages PHP et à la conception d'interactions dans le développement de mini-programmes : un mini-programme est une application qui s'exécute sur un appareil mobile et peut offrir une expérience similaire aux applications natives. Dans le développement de mini-programmes, PHP, en tant que langage back-end couramment utilisé, peut ajouter des effets d'animation et une conception interactive aux pages des mini-programmes. Cet article présentera certains effets d'animation de page PHP et conceptions d'interaction couramment utilisés, et joindra des exemples de code. 1. Animation CSS3 CSS3 fournit une multitude de propriétés et de méthodes pour obtenir divers effets d'animation. Et en petit

Analyse du processus de développement et de lancement des applets ByteDance mis en œuvre par UniApp En tant que méthode émergente de développement d'applications mobiles, les applets ByteDance deviennent progressivement populaires dans l'industrie. Avant de développer le mini programme Bytedance, nous devons comprendre comment utiliser UniApp pour mettre en œuvre le processus de développement et de lancement. 1. Introduction à UniApp UniApp est un framework développé sur la base de Vue.js qui utilise HTML5, App et de petits programmes comme cadre de développement unifié pour plusieurs terminaux. En écrivant un ensemble de code, il peut s'exécuter sur plusieurs plates-formes en même temps. , y compris les polices.
