Maison >interface Web >js tutoriel >Explication détaillée de la façon d'utiliser JS natif pour obtenir un effet carrousel Web mobile
Lors du développement mobile, les images de carrousel sont indispensables. L'article suivant vous présente principalement les informations pertinentes sur l'utilisation de JS pur pour réaliser des images de carrousel Web mobile. L'important est de combiner l'algorithme Tween. La création de roues est présentée en détail via. exemple de code dans cet article. Les amis dans le besoin peuvent s'y référer.
Avant-propos
Je pense que tout le monde devrait savoir que les images carrousel sur le terminal mobile sont nos besoins les plus courants et notre moyen le plus rapide de les mettre en œuvre Il s'agit souvent d'un code tiers, tel que SWIPER, mais lorsque je rencontre des cartes de rotation plus compliquées, je ne sais souvent pas comment les modifier pour s'adapter à divers besoins complexes et changeants. c'est que s'il y a des bugs dans le code que vous écrivez, c'est facile à corriger, et cela vous améliorera grandement
1. Exigences relatives aux images de carrousel S'adapter aux écrans de différentes largeurs/dpr
2. Nécessité d'utiliser des événements liés au toucher
3. Différents modèles peuvent prendre en charge les événements tactiles différemment. Certains problèmes de compatibilité
4. Déplacez votre doigt sur une partie de. la distance dans l'image, et la distance restante doit être complétée automatiquement
5. L'achèvement automatique de la distance nécessite une courbe de temps de facilité
1. Les événements de toucher des doigts peuvent être réalisés à travers 3 événements : touchstart touchmove touchend
2. Lorsque le doigt touche le début, nous devons enregistrer la coordonnée x du doigt. Vous pouvez utiliser l'attribut pageX du toucher et à ce moment-là,
3. Lorsque le doigt touchmove, nous devons également enregistrer pageX et enregistrer la distance cumulée parcourue
5. Déterminez la direction du mouvement en comparant la distance de mouvement dans la direction x et si elle doit passer à l'image suivante pour juger si l'utilisateur ; a balayé vers la gauche ou la droite en fonction de l'heure
6. Déplacer les images peut être réalisé à l'aide de Translate3D, en activant l'accélération matérielle
7. Se déplacer sur une certaine distance nécessite la facilitéOut effet, nous pouvons utiliser l'algorithme easyOut dans l'algorithme Tween pour réaliser la distance que nous parcourons à chaque fois ; bien sûr, nous pouvons également utiliser l'animation de transition js Set
style de tête
HTML structure
<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=.5,maximum-scale=.5"> <title>移动端轮播图</title> <style> * { box-sizing: border-box; margin: 0; padding: 0 } .banner { overflow: hidden; width: 100%; height: 300px } .banner .img-wrap { position: relative; height: 100% } .banner img { display: block; position: absolute; top: 0; width: 100%; height: 100% } </style> </head>
Code JS 1. mouvement animé easyOut,
<p class="banner"> <p class="img-wrap" id="imgWrap"> <img src="images/banner_3.jpg" data-index="-1"> <img src="images/banner_1.jpg" data-index="0"> <img src="images/banner_2.jpg" data-index="1"> <img src="images/banner_3.jpg" data-index="2"> <img src="images/banner_1.jpg" data-index="3"> </p> </p>
partie de l'événement tactile
<script> HTMLElement.prototype.tweenTranslateXAnimate = function (start, end, callback) { var duration = 50; var t = 0; var vv = end - start; var Tween = { Quad: { easeOut: function (t, b, c, d) { return -c * (t /= d) * (t - 2) + b; } } }; this.timer = setInterval(function () { var dis = start + Tween.Quad.easeOut(++t, 0, vv, duration); this.style.transform = 'translate3d(' + dis + 'px, 0, 0)'; if (vv > 0 && parseInt(this.style.transform.slice(12)) >= end) { this.style.transform = 'translate3d(' + parseInt(dis) + 'px, 0, 0)'; clearInterval(this.timer); callback && callback(); } if (vv < 0 && parseInt(this.style.transform.slice(12)) <= end) { this.style.transform = 'translate3d(' + parseInt(dis) + 'px, 0, 0)'; clearInterval(this.timer); callback && callback(); } }.bind(this), 4); } </script>
Le paramètre le plus critique de l'événement tactile est le paramètre pageX, qui enregistre la position de Pour que nous puissions l'utiliser dans des projets réels.
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!