亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Table des matières
Concepts du curseur Infinity Loop
Implémentation d'un curseur de boucle infini
Orchestrer la boucle de diapositive
Conclusion
Maison interface Web tutoriel CSS Comment puis-je créer un curseur de boucle d'image infinie à l'aide de JavaScript/jQuery??

Comment puis-je créer un curseur de boucle d'image infinie à l'aide de JavaScript/jQuery??

Nov 03, 2024 am 12:30 AM

How can I create an infinite image loop slider using JavaScript/jQuery?

Concepts du curseur Infinity Loop

Cet article traite des meilleures pratiques, telles que la lisibilité, la réutilisabilité du code et les bonnes pratiques de codage, pour créer un Infinity-Image-Loop- Slider pour un site Web utilisant JavaScript/jQuery. L'accent est mis sur la fa?on d'organiser les images pour créer l'illusion d'un curseur de boucle sans fin.

Implémentation d'un curseur de boucle infini

Une méthode simple pour créer un curseur d'image infini est la suivante?: Supposons vous avez "n" images à faire glisser en boucle, la première image suivant la nième image et vice-versa. Créez un clone de la première et de la dernière images et procédez comme suit?:

  • Ajoutez le clone de la dernière image avant la première image.
  • Ajoutez le clone de la première image après le dernière image.

Quel que soit le nombre d'images, il vous suffit d'insérer deux éléments clonés à la plupart.

En supposant que toutes les images mesurent 100?px de large et sont affichées dans un conteneur avec débordement?: caché, affichage?: bloc en ligne et espace blanc?: nowrap, le conteneur contenant les images peut être facilement aligné dans une rangée.

Pour n = 4, la structure DOM appara?trait comme suit :

offset(px)     0       100     200     300     400     500
images         |   4c   |   1   |   2   |   3   |   4   |   1c
                                                   
/*                 ^^                                       ^^
       [ Clone of the last image ]              [ Clone of the 1st image ]
*/

Initialement, le conteneur est positionné à gauche : -100px, permettant d'afficher la première image. Pour basculer entre les images, appliquez une animation JavaScript à la propriété CSS que vous avez initialement sélectionnée.

  • Lorsque le curseur est sur la 4ème image, passer à l'image 1c implique d'animer de l'image 4 à 1c. Une fois l'animation terminée, repositionnez instantanément le wrapper du curseur au décalage réel de la 1ère image (par exemple, définissez à gauche?: -100px sur le conteneur).
  • De même, lorsque le curseur est positionné sur le 1er élément, effectuer l'animation précédente de l'image 1 à 4c et déplacer le conteneur vers le décalage de la 4ème image (à gauche?: -400px par rapport au conteneur) suffit pour afficher l'animation précédente. image.

Orchestrer la boucle de diapositive

Le violon qui l'accompagne démontre cet effet. Vous trouverez ci-dessous le code JavaScript/jQuery de base utilisé?:

$(function() {
 
  var gallery = $('#gallery ul'),
      items   = gallery.find('li'),
      len     = items.length,
      current = 1,  /* the item we're currently looking */
      
      first   = items.filter(':first'),
      last    = items.filter(':last'),
      
      triggers = $('button');
  
  /* 1. Cloning first and last item */
  first.before(last.clone(true)); 
  last.after(first.clone(true)); 
  
  /* 2. Set button handlers */
  triggers.on('click', function() {

    var cycle, delta;
    
    if (gallery.is(':not(:animated)')) {
     
        cycle = false;
        delta = (this.id === "prev")? -1 : 1;
        /* in the example buttons have id "prev" or "next" */  
    
        gallery.animate({ left: "+=" + (-100 * delta) }, function() {
      
            current += delta;
       
            /** 
             * we're cycling the slider when the the value of "current" 
             * variable (after increment/decrement) is 0 or when it exceeds
             * the initial gallery length
             */          
            cycle = (current === 0 || current > len);
       
            if (cycle) {
                /* we switched from image 1 to 4-cloned or 
                   from image 4 to 1-cloned */
                current = (current === 0)? len : 1; 
                gallery.css({left:  -100 * current });
            }
        });   
     }
    
  });
});

Conclusion

Cette solution est relativement simple et efficace, ne nécessitant que deux opérations d'insertion DOM supplémentaires et une logique de gestion de boucle simple par rapport à une solution non -curseur de boucle.

Bien que des approches alternatives puissent exister, cette méthode fournit une solution pratique et efficace pour créer un curseur de boucle infinie.

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)

Qu'est-ce que l'autoprefixer et comment ?a marche? Qu'est-ce que l'autoprefixer et comment ?a marche? Jul 02, 2025 am 01:15 AM

AutoPrefixer est un outil qui ajoute automatiquement les préfixes des fournisseurs aux attributs CSS en fonction de la portée du navigateur cible. 1. Il résout le problème de maintenir manuellement les préfixes avec des erreurs; 2. Travaillez le formulaire de plug-in PostCSS, analyse CSS, analysez les attributs qui doivent être préfixés et générer du code en fonction de la configuration; 3. Les étapes d'utilisation incluent l'installation de plug-ins, la définition de la liste de navigateurs et leur permettant dans le processus de construction; 4. Les notes ne comprennent pas manuellement les préfixes, le maintien des mises à jour de la configuration, les préfixes pas tous des attributs, et il est recommandé de les utiliser avec le préprocesseur.

Tutoriel CSS pour créer un en-tête ou un pied de page collant Tutoriel CSS pour créer un en-tête ou un pied de page collant Jul 02, 2025 am 01:04 AM

TOCREATESTICKYHEADERSERSANDFOOTERS WITHCSS, USEPOSITION: StickyforhederswithTopValueAndz-Index, assurant leparentContainerson’trestrictit.1.Forstickyheders: SetPosition: Sticky, Top: 0, Z-index, AndbackgroundColor.2

Tutoriel CSS pour créer des filateurs et des animations de chargement Tutoriel CSS pour créer des filateurs et des animations de chargement Jul 07, 2025 am 12:07 AM

Il existe trois fa?ons de créer un rotateur de chargement CSS: 1. Utilisez le rotateur de base des frontières pour obtenir une animation simple via HTML et CSS; 2. Utilisez un rotateur personnalisé de plusieurs points pour atteindre l'effet de saut à travers différents temps de retard; 3. Ajoutez un rotateur dans le bouton et basculez les classes via JavaScript pour afficher l'état de chargement. Chaque approche souligne l'importance des détails de conception tels que la couleur, la taille, l'accessibilité et l'optimisation des performances pour améliorer l'expérience utilisateur.

Tutoriel CSS axé sur la conception mobile d'abord Tutoriel CSS axé sur la conception mobile d'abord Jul 02, 2025 am 12:52 AM

Mobile-FirstcssDesigrequequetsettingTheViewportMetatag, UsingrelativeUnits, StylingFromsMallScreensup, OptimizingTypographicAndTouchtarget.First, addtiControlsaling.second, use%, em, orreminsteadofpixel

Comment créer une disposition de grille intrinsèquement réactive? Comment créer une disposition de grille intrinsèquement réactive? Jul 02, 2025 am 01:19 AM

Pour créer une disposition de grille réactive intrinsèque, la méthode principale consiste à utiliser le mode répétition de CSSGrid (Auto-Fit, Minmax ()); 1. Définir la grille-template-colonnes: répéter (Auto-Fit, Minmax (200px, 1fr)) pour laisser le navigateur ajuster automatiquement le nombre de colonnes et limiter les largeurs minimales et maximales de chaque colonne; 2. Utiliser l'espace pour contr?ler l'espacement de la grille; 3. Le conteneur doit être réglé sur des unités relatives telles que la largeur: 100%, et utiliser la taille de la bo?te: Border-Box pour éviter les erreurs de calcul de la largeur et les centrer avec la marge: auto; 4. Définissez éventuellement la hauteur de la ligne et l'alignement du contenu pour améliorer la cohérence visuelle, comme la ligne

Comment centrer une grille entière dans la fenêtre? Comment centrer une grille entière dans la fenêtre? Jul 02, 2025 am 12:53 AM

Pour rendre l'intégralité de la disposition de la grille centrée dans la fenêtre, elle peut être réalisée par les méthodes suivantes: 1. Utilisez la marge: 0Auto pour atteindre le centrage horizontal, et le conteneur doit être défini pour définir la largeur fixe, qui convient à la mise en page fixe; 2. Utilisez Flexbox pour définir les propriétés de justification et d'alignement des éléments dans le récipient extérieur, et combinez la hauteur min: 100VH pour atteindre le centrage vertical et horizontal, qui convient aux scénarios d'affichage plein écran; 3. Utilisez la propriété Place-Items de CSSGrid pour se concentrer rapidement sur le conteneur parent, ce qui est simple et a un bon soutien des navigateurs modernes, et en même temps, il est nécessaire de garantir que le conteneur parent a une hauteur suffisante. Chaque méthode a des scénarios et des restrictions applicables, choisissez simplement la solution appropriée en fonction des besoins réels.

Qu'est-ce que la détection des fonctionnalités dans CSS en utilisant @Supports? Qu'est-ce que la détection des fonctionnalités dans CSS en utilisant @Supports? Jul 02, 2025 am 01:14 AM

FeatureSectionIncSsusing @ supportScheCkSifabrowSerSupportsaSaspecificfEATUREBOreApplyingreatedStyles.1.ituseSConditionalcSsblocksbasedOnproperty-Valuepraire, telshas @ supports (affichage: Grid).

ATTENTION DES PROBLèMES ET PRéFIXES DE COMPATIBILITé DE BROWSER CSS ATTENTION DES PROBLèMES ET PRéFIXES DE COMPATIBILITé DE BROWSER CSS Jul 07, 2025 am 01:44 AM

Pour faire face à la compatibilité du navigateur CSS et aux problèmes de préfixe, vous devez comprendre les différences de prise en charge du navigateur et utiliser raisonnablement les préfixes des fournisseurs. 1. Comprendre les problèmes communs tels que Flexbox et le support de la grille, Position: Sticky Invalid et les performances d'animation sont différentes; 2. Vérifier l'état du support de la fonction de confirmation de Caniuse; 3. Utilisez correctement -webkit-, -moz-, -ms-, -o- et autres préfixes du fabricant; 4. Il est recommandé d'utiliser AutopRefixer pour ajouter automatiquement les préfixes; 5. Installez PostCSS et configurez le navigateur pour spécifier le navigateur cible; 6. Gérer automatiquement la compatibilité pendant la construction; 7. Les fonctionnalités de détection modernizr peuvent être utilisées pour les anciens projets; 8. Pas besoin de poursuivre la cohérence de tous les navigateurs,

See all articles