国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison interface Web js tutoriel Un plugin jQuery pour le coup de contact - Partie 1 sur 2

Un plugin jQuery pour le coup de contact - Partie 1 sur 2

Feb 24, 2025 am 08:45 AM

Cet article détaille la construction d'un plugin jQuery pour détecter les balayages horizontaux sur les appareils tactiles. La première partie se concentre sur la création d'un carrousel d'image réactif. La deuxième partie (non incluse ici) ajoutera une détection de balayage.

Concepts clés:

  • Ce tutoriel crée un plugin jQuery qui détecte des balayages horizontaux, principalement démontrés via un carrousel d'image.
  • Un guide étape par étape couvre la fondation HTML, CSS et JavaScript du plugin.
  • La logique principale réside dans la classe Swiper, gérant les événements du navigateur et déclenchant des rappels. Le plugin utilise une fermeture pour empêcher les conflits de dénomination.
  • Le tutoriel explique l'implémentation du plugin, y compris la définition des limites de carrousel, le suivi de la position et la définition des rappels à l'aide de JSON.

html & css:

La structure HTML du carrousel est simple:

<div style="width: 330px; height: 200px;">
  <div id="target">
    <div class="frame">
      <div class="pictures">
        <div class="pic"><img src="/static/imghw/default1.png"  data-src="https://img.php.cn/upload/article/000/000/000/174035791350855.jpg"  class="lazy" alt="A jQuery Plugin for Touch Swiping - Part 1 of 2 " /></div>
        <div class="pic"><img src="/static/imghw/default1.png"  data-src="https://img.php.cn/upload/article/000/000/000/174035791497040.jpg"  class="lazy" alt="A jQuery Plugin for Touch Swiping - Part 1 of 2 " /></div>
        <div class="pic"><img src="/static/imghw/default1.png"  data-src="https://img.php.cn/upload/article/000/000/000/174035791447095.jpg"  class="lazy" alt="A jQuery Plugin for Touch Swiping - Part 1 of 2 " /></div>
        <div class="pic"><img src="/static/imghw/default1.png"  data-src="https://img.php.cn/upload/article/000/000/000/174035791526338.jpg"  class="lazy" alt="A jQuery Plugin for Touch Swiping - Part 1 of 2 " /></div>
      </div>
    </div>
  </div>
</div>

Le CSS associé styles le carrousel:

img {
  width: 100%;
  margin: 0;
}

.frame {
  width: 100%;
  height: 100%;
  border: 1px solid #ccc;
  overflow: hidden;
  position: relative;
}

.pictures {
  position: absolute;
  width: 400%;
  left: 0%;
}

.pictures:after {
  content: "<pre class="brush:php;toolbar:false"><code class="javascript">(function ($) {
  'use strict';

  var Swiper = function (el, callbacks) {
    // Constructor logic (detailed below)
  };

  $.fn.swiper = function (callbacks) {
    if (typeof callbacks.swiping !== 'function') {
      throw '"swiping" callback must be defined.';
    }

    this.each(function () {
      var tis = $(this),
        swiper = tis.data('swiper');

      if (!swiper) {
        tis.data('swiper', (swiper = new Swiper(this, callbacks)));
      }
    });
  };
}(jQuery));
20"; display: none; height: 0; } .pictures .pic { width: 25%; float: left; }

La largeur de 400% de la div peut accueillir quatre images, tandis que chaque .pictures div est 25% pour une distribution uniforme. Ajustez ces valeurs au besoin pour différents dénombrements ou tailles d'images. .pic

javascript (squelette de plugin):

La structure de base du plugin jQuery:

var Swiper = function (el, callbacks) {
  var tis = this;
  this.el = el;
  this.cbs = callbacks;
  this.points = [0, 0];

  this.el.addEventListener('touchstart', function (evt) {
    tis.start(evt);
  });
  this.el.addEventListener('touchmove', function (evt) {
    evt.preventDefault();
    tis.move(evt);
  });
};
Cela établit la structure du plugin. La classe

(détaillée ci-dessous) gère la fonctionnalité principale. La fermeture empêche le code externe de remplacer le plugin. Swiper

Classe de glissement (implémentation partielle):

les gestionnaires de constructeurs et d'événements

: Swiper

Swiper.prototype.diff = function () {
  return this.points[1] - this.points[0];
};

Swiper.prototype.move = function (evt) {
  // Logic to update this.points[1] based on evt.targetTouches
  this.cbs.swiping(this.diff());
  this.points[0] = this.points[1];
};

Swiper.prototype.start = function(evt) {
    // Logic to update this.points[0] based on evt.targetTouches
    this.points[1] = this.points[0];
};
le

le tableau suit les positions des doigts. points Initialise la position de départ, et touchstart (avec touchmove pour empêcher le comportement de défilement par défaut) met à jour la position et appelle le rappel. preventDefault

Méthodes de glissement (implémentation partielle):

Méthodes pour calculer les différences et la manipulation du mouvement:

var target = $('#target'),
  pictures = $('.pictures', target),
  MAX_LEFT = -990,
  MAX_RIGHT = 0,
  currPos = 0,
  cb = {
    swiping: function (displacement) {
      currPos += displacement;
      currPos = Math.max(MAX_LEFT, Math.min(currPos, MAX_RIGHT));
      pictures.css('left', currPos + 'px');
    }
  };

target.swiper(cb);

calcule la distance de balayage. diff() met à jour la position, appelle le rappel avec la distance et met à jour la position précédente pour un suivi précis. move() initialise la position de départ. (Remarque: l'implémentation complète pour accéder aux propriétés start est omise par la concision mais est cruciale pour la pleine fonctionnalité.) evt.targetTouches

Invocation du plugin:

Exemple de la fa?on d'utiliser le plugin:

Cela configure le carrousel, définit les limites et lie le plugin avec la fonction de rappel qui met à jour la position du carrousel. Les

et Math.max s'assurent que le carrousel reste dans les limites. Math.min

Cette réponse révisée fournit une explication plus concise et organisée de la création du plugin, en se concentrant sur les aspects clés et en omettant des détails moins essentiels pour plus de clarté. N'oubliez pas que la mise en ?uvre complète des méthodes de la classe Swiper (en particulier gérer différentes propriétés d'événements tactiles sur les appareils) est nécessaire pour les fonctionnalités complètes.

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!

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Javascript contre Java: Quelle langue devez-vous apprendre? Javascript contre Java: Quelle langue devez-vous apprendre? Jun 10, 2025 am 12:05 AM

JavascriptSidealforWebDevelopment, tandis que JavasuitsLarge-ScaleApplicationsAndAndroidDevelopment.1) JavascriptExcelsInCreatingInteractiveWebexperiences andfull-stackdevelopmentwithnode.js.2)

Quels commentaires symboles à utiliser dans javascript: une explication claire Quels commentaires symboles à utiliser dans javascript: une explication claire Jun 12, 2025 am 10:27 AM

Dans JavaScript, le choix d'un commentaire à une seule ligne (//) ou d'un commentaire en plusieurs lignes (//) dépend de l'objectif et des exigences du projet du commentaire: 1. Utilisez des commentaires à une seule ligne pour une interprétation rapide et en ligne; 2. Utilisez des commentaires multi-lignes pour une documentation détaillée; 3. Maintenir la cohérence du style de commentaire; 4. évitez la sur-annulation; 5. Assurez-vous que les commentaires sont mis à jour de manière synchrone avec le code. Le choix du bon style d'annotation peut aider à améliorer la lisibilité et la maintenabilité de votre code.

Le guide ultime des commentaires JavaScript: améliorer la clarté du code Le guide ultime des commentaires JavaScript: améliorer la clarté du code Jun 11, 2025 am 12:04 AM

Oui, JavaScriptComments ararecessey et devraient être utilisés en fonction de la manière

Java vs Javascript: effacer la confusion Java vs Javascript: effacer la confusion Jun 20, 2025 am 12:27 AM

Java et JavaScript sont différents langages de programmation, chacun adapté à différents scénarios d'application. Java est utilisé pour le développement des grandes entreprises et des applications mobiles, tandis que JavaScript est principalement utilisé pour le développement de pages Web.

Commentaires JavaScript: Explication courte Commentaires JavaScript: Explication courte Jun 19, 2025 am 12:40 AM

JavaScriptCommentsaSententialFormantaining, Reading et GuidingCodeEexecution.1) unique-linecomesaUSEUSEFORQUICKEXPLANATIONS.2) Multi-linecommentSExPlainComplexLogicorProvideTailedDocumentation.3) Inlinecomementsclarifypecifications

Ma?triser les commentaires JavaScript: un guide complet Ma?triser les commentaires JavaScript: un guide complet Jun 14, 2025 am 12:11 AM

CommentairesaRecrucialInjavaScriptFormantAntaining ClarityandfosterringCollaboration.1) TheyHelpindebuggging, INBORDING et comprise compenser laveevolution.2) Utilisation de linecomments à la hauteur

Types de données JavaScript: une plongée profonde Types de données JavaScript: une plongée profonde Jun 13, 2025 am 12:10 AM

Javascripthasseveralprivevedatatypes: numéro, cha?ne, booléen, indéfini, nul, symbole, etbigint, et nonne-primitiveTypes lisebjectandarray.Cendurstanding theseiscrucialforwritingEfficient, bogue-freecode: 1)

Javascript contre Java: une comparaison complète pour les développeurs Javascript contre Java: une comparaison complète pour les développeurs Jun 20, 2025 am 12:21 AM

Javascriptispreferredforwebdevelopment, tandis que javaisbetterforlarge-scalebackenSystemsandandroidApps.1)

See all articles