Maison interface Web js tutoriel Implémenter un effet de glissement d'image basé sur les compétences javascript_javascript

Implémenter un effet de glissement d'image basé sur les compétences javascript_javascript

May 16, 2016 pm 03:01 PM
js 图片 滑动

Aujourd'hui, j'ai vu une diapositive d'image écrite par quelqu'un d'autre. Quand j'ai lu le code source, cela m'a semblé un peu difficile, alors je l'ai imité et j'en ai écrit une. L'effet était le même que la page Web originale. Cependant, mon propre code js a une logique simple et doit être mis à jour.
ps : j'ai écrit un carrousel il y a deux jours, mais la compatibilité n'était pas bonne. Quand j'ai écrit cette page web aujourd'hui, j'ai suivi la même idée et elle fonctionne très bien sur Google Chrome De nombreuses fonctions de Firefox ne peuvent pas être implémentées à cause du wrap-panel. est utilisé. Pour un positionnement absolu, modifiez la traduction vers la gauche. Après le changement, chaque navigateur fonctionne bien.

Le code spécifique est le suivant

code html (pas de commentaires)

<div class="container"> 
    <h1>Parallax Slider</h1> 
    <div class="wrap"> 
      <div class="bg-img"> 
        <div id="bg_1" class="bg bg-1" style="left: 0px;"></div> 
        <div id="bg_2" class="bg bg-2" style="left: 0px;"></div> 
        <div id="bg_3" class="bg bg-3" style="left: 0px;"></div> 
      </div> 
      <div id="wrap_panel" class="wrap-panel" style="left: 0px;"> 
        <div class="panel panel-1"> 
          <img id="img_1" src="images/1.jpg"> 
        </div> 
        <div class="panel panel-2"> 
          <img src="images/2.jpg"> 
        </div> 
        <div class="panel panel-3"> 
          <img src="images/3.jpg"> 
        </div> 
        <div class="panel panel-4"> 
          <img src="images/4.jpg"> 
        </div> 
        <div class="panel panel-5"> 
          <img src="images/5.jpg"> 
        </div> 
        <div class="panel panel-6"> 
          <img src="images/6.jpg"> 
        </div> 
      </div> 
      <div class="navigation-button"> 
        <span id="perv_btn" class="perv-button"></span> 
        <span id="next_btn" class="next-button"></span> 
      </div> 
      <div id="show_small" class="show-small"> 
        <ul> 
          <li><img src="images/thumbs/1.jpg"></li> 
          <li><img src="images/thumbs/2.jpg"></li> 
          <li><img src="images/thumbs/3.jpg"></li> 
          <li><img src="images/thumbs/4.jpg"></li> 
          <li><img src="images/thumbs/5.jpg"></li> 
          <li><img src="images/thumbs/6.jpg"></li> 
        </ul> 
      </div> 
    </div> 
  </div> 
Copier après la connexion

code CSS (vérifiez-le vous-même) :

* { margin: 0; padding: 0; } 
  html, body, .container { width: 100%; height: 100%; font-family: 'Microsoft Yahei'; } 
  .container { background-color: #222; overflow-x: hidden; } 
  .container h1 { font-size: 50px; color: #ccc; text-align: center; font-weight: bolder; height: 120px; line-height: 120px; } 
  .wrap { position: relative; width: 600%; height: 400px; border-top: 10px solid #333; border-bottom: 10px solid #333; margin-top: 20px; } 
  .bg { position: absolute; width: 100%; height: 100%; left: 0; top: 0; -webkit-transition: all 1s;-moz-transition: all 1s;-ms-transition: all 1s;-o-transition: all 1s;transition: all 1s; } 
  .bg-1 { background: url(images/bg1.png); } 
  .bg-2 { background: url(images/bg2.png); } 
  .bg-3 { background: url(images/bg3.png); } 
  .wrap-panel { position: absolute; width: 100%; height: 100%; -webkit-transition: all 1s; -moz-transition: all 1s; -ms-transition: all 1s; -o-transition: all 1s; transition: all 1s; } 
  .panel { width: 16.66%; height: 100%; float: left; } 
  .panel img { display: block; margin: 0 auto; margin-top: 35px; border-radius: 10px; border: 10px solid rgba(143, 143, 143, 0.6); } 
  .navigation-button span:hover { opacity: 0.8 } 
  .perv-button, .next-button { position: absolute; width: 30px; height: 60px; background-color: #344133; border-radius: 10px; cursor: pointer; opacity: 0.4; } 
  .perv-button { background: #000 url(images/prev.png) center center no-repeat; } 
  .next-button { background: #000 url(images/next.png) center center no-repeat; } 
  .show-small { position: absolute; width: 680px; bottom: 20px; } 
  .show-small ul { list-style: none; } 
  .show-small ul li { float: left; margin: 0 10px; border: 5px solid #fff; opacity: 0.7; cursor: pointer;-webkit-transition: all .3s; -moz-transition: all .3s; -ms-transition: all .3s;-o-transition: all .3s; transition: all .3s; } 
  .show-small ul li:hover { margin-top: -15px; } 
Copier après la connexion

code js (petite démo) :

window.onload = function() { 
      // 得到元素 
      var getDOM = function (id){ 
        return typeof id==="string"&#63;document.getElementById(id):id; 
      } 
 
      // 得到对象 
      var img = getDOM('img_1'); 
      var prev = getDOM("perv_btn"); 
      var next = getDOM("next_btn"); 
      var wrap_panel = getDOM('wrap_panel'); 
      var bg_1 = getDOM("bg_1"); 
      var bg_2 = getDOM("bg_2"); 
      var bg_3 = getDOM("bg_3"); 
      var show_small = getDOM("show_small"); 
      var list = show_small.getElementsByTagName("li"); 
      var wwidth; 
 
       // 为元素绑定事件 
      var addEvent = function(id,event,fn) { 
       var el = getDOM(id) || document; 
       if(el.addEventListener){ 
        el.addEventListener(event,fn,false); 
       }else if(el.attachEvent){ 
        el.attachEvent('on' + event,fn); 
       } 
      } 
      function init() { 
         
        // 对按钮进行定位 
        // 向前按钮的左边距离=图片的左距离+边框 
        prev.style.left = img.offsetLeft + 10 + 'px'; 
        // 向前按钮的上边距离=图片的上距离+图片高度的一半-按钮高度的一半 
        prev.style.top = img.offsetTop + img.clientHeight/2 - prev.clientHeight/2 + 'px'; 
        next.style.left = img.offsetLeft + img.clientWidth + 10 - next.clientWidth + 'px'; 
        next.style.top =prev.style.top; 
 
        // 对小图片的容器进行定位 
        wwidth = document.documentElement.clientWidth || document.body.clientWidth; 
        show_small.style.left = (wwidth - show_small.clientWidth)/2 + 'px'; 
      } 
 
      // 小图片的处理 
      function small_img() { 
        // 对图片进行旋转处理 
        for (var i = 0;i< list.length; i++) { 
          // 旋转方向 
          var direction = Math.pow(-1,parseInt(Math.random()*10)); 
          list[i].style = "transform:rotate(" + (Math.random()*20*direction) + "deg)"; 
        } 
        list[0].style.opacity = 1; 
      } 
 
      function only_one(el,num) { 
        for (var i = 0; i < el.length; i++) { 
          el[i].style.opacity = 0.7; 
        } 
        // console.log(num); 
        el[num].style.opacity = 1; 
      } 
 
      // 浏览器缩放时 
      window.onresize = function() { 
        init(); 
      } 
     
      // 执行函数 
      init(); 
      small_img(); 
      addEvent(prev,'click',function() { 
        // 改变wrap-panel的left 
        var oldPos = parseInt(wrap_panel.style.left); 
         
        if(oldPos == 0) {   
 
          // 背景平移 图片容器平移 
          bg_1.style.left=bg_2.style.left=bg_3.style.left=wrap_panel.style.left = -wwidth*(list.length-1) +'px'; 
 
          // 更改对应小图片透明度 
          only_one(list,list.length-1); 
        } else { 
 
          // 背景平移 图片容器平移 
          wrap_panel.style.left = (oldPos + wwidth) +'px'; 
          bg_1.style.left= (oldPos + wwidth - parseInt(-(oldPos/wwidth + 1))*100) +'px'; 
          bg_2.style.left= (oldPos + wwidth - parseInt(-(oldPos/wwidth + 1))*300) +'px'; 
          bg_3.style.left= (oldPos + wwidth - parseInt(-(oldPos/wwidth + 1))*500) +'px'; 
 
          // 更改对应小图片透明度 
          only_one(list,parseInt(-(oldPos/wwidth + 1))); 
        } 
      }); 
      addEvent(next,'click',function() { 
        // 改变wrap-panel的left 
        var oldPos = parseInt(wrap_panel.style.left);         
 
        if(oldPos == -wwidth*(list.length-1)) {    
 
          // 背景平移 图片容器平移 
          bg_1.style.left=bg_2.style.left=bg_3.style.left=wrap_panel.style.left = '0px'; 
 
          // 更改对应小图片透明度 
          only_one(list,0); 
        } else { 
          // 背景平移 图片容器平移 
          wrap_panel.style.left = (oldPos - wwidth) +'px'; 
          bg_1.style.left= (oldPos - wwidth + parseInt(-(oldPos/wwidth + 1))*100) +'px'; 
          bg_2.style.left= (oldPos - wwidth + parseInt(-(oldPos/wwidth + 1))*300) +'px'; 
          bg_3.style.left= (oldPos - wwidth + parseInt(-(oldPos/wwidth + 1))*500) +'px'; 
 
          // 更改对应小图片透明度 
          only_one(list,parseInt(-(oldPos/wwidth - 1))); 
        } 
      }); 
    }
Copier après la connexion

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à tout le monde dans l'apprentissage de la programmation javascript.

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

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.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

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 grâce à 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)

Comment résoudre le problème de l'enregistrement automatique des images lors de la publication sur Xiaohongshu ? Où est l'image enregistrée automatiquement lors de la publication ? Comment résoudre le problème de l'enregistrement automatique des images lors de la publication sur Xiaohongshu ? Où est l'image enregistrée automatiquement lors de la publication ? Mar 22, 2024 am 08:06 AM

Avec le développement continu des médias sociaux, Xiaohongshu est devenue une plateforme permettant à de plus en plus de jeunes de partager leur vie et de découvrir de belles choses. De nombreux utilisateurs sont gênés par des problèmes de sauvegarde automatique lors de la publication d’images. Alors, comment résoudre ce problème ? 1. Comment résoudre le problème de l'enregistrement automatique des images lors de la publication sur Xiaohongshu ? 1. Vider le cache Tout d'abord, nous pouvons essayer de vider les données du cache de Xiaohongshu. Les étapes sont les suivantes : (1) Ouvrez Xiaohongshu et cliquez sur le bouton « Mon » dans le coin inférieur droit (2) Sur la page du centre personnel, recherchez « Paramètres » et cliquez dessus (3) Faites défiler vers le bas et recherchez « ; "Vider le cache". Cliquez sur OK. Après avoir vidé le cache, entrez à nouveau dans Xiaohongshu et essayez de publier des photos pour voir si le problème de sauvegarde automatique est résolu. 2. Mettez à jour la version Xiaohongshu pour vous assurer que votre Xiaohongshu

Comment publier des photos dans les commentaires TikTok ? Où se trouve l'entrée des photos dans la zone commentaire ? Comment publier des photos dans les commentaires TikTok ? Où se trouve l'entrée des photos dans la zone commentaire ? Mar 21, 2024 pm 09:12 PM

Avec la popularité des courtes vidéos Douyin, les interactions des utilisateurs dans la zone de commentaires sont devenues plus colorées. Certains utilisateurs souhaitent partager des images en commentaires pour mieux exprimer leurs opinions ou émotions. Alors, comment publier des photos dans les commentaires TikTok ? Cet article répondra à cette question en détail et vous fournira quelques conseils et précautions connexes. 1. Comment publier des photos dans les commentaires Douyin ? 1. Ouvrez Douyin : Tout d'abord, vous devez ouvrir l'application Douyin et vous connecter à votre compte. 2. Recherchez la zone de commentaire : lorsque vous parcourez ou publiez une courte vidéo, recherchez l'endroit où vous souhaitez commenter et cliquez sur le bouton "Commentaire". 3. Saisissez le contenu de votre commentaire : saisissez le contenu de votre commentaire dans la zone de commentaire. 4. Choisissez d'envoyer une photo : Dans l'interface de saisie du contenu des commentaires, vous verrez un bouton « image » ou un bouton « + », cliquez sur

6 façons de rendre les images plus nettes sur iPhone 6 façons de rendre les images plus nettes sur iPhone Mar 04, 2024 pm 06:25 PM

Les iPhones récents d'Apple capturent des souvenirs avec des détails, une saturation et une luminosité nets. Mais parfois, vous pouvez rencontrer des problèmes qui peuvent rendre l’image moins claire. Bien que la mise au point automatique sur les appareils photo iPhone ait parcouru un long chemin, vous permettant de prendre des photos rapidement, l'appareil photo peut se concentrer par erreur sur le mauvais sujet dans certaines situations, rendant la photo floue dans les zones indésirables. Si vos photos sur votre iPhone semblent floues ou manquent globalement de netteté, l’article suivant devrait vous aider à les rendre plus nettes. Comment rendre les images plus claires sur iPhone [6 méthodes] Vous pouvez essayer d'utiliser l'application Photos native pour nettoyer vos photos. Si vous souhaitez plus de fonctionnalités et d'options

Comment faire sortir les images ppt une par une Comment faire sortir les images ppt une par une Mar 25, 2024 pm 04:00 PM

Dans PowerPoint, il est courant d'afficher les images une par une, ce qui peut être réalisé en définissant des effets d'animation. Ce guide détaille les étapes de mise en œuvre de cette technique, y compris la configuration de base, l'insertion d'images, l'ajout d'une animation et l'ajustement de l'ordre et du timing de l'animation. De plus, des paramètres et ajustements avancés sont fournis, tels que l'utilisation de déclencheurs, l'ajustement de la vitesse et de l'ordre de l'animation et la prévisualisation des effets d'animation. En suivant ces étapes et conseils, les utilisateurs peuvent facilement configurer les images pour qu'elles apparaissent les unes après les autres dans PowerPoint, améliorant ainsi l'impact visuel de la présentation et attirant l'attention du public.

Que dois-je faire si les images de la page Web ne peuvent pas être chargées ? 6 solutions Que dois-je faire si les images de la page Web ne peuvent pas être chargées ? 6 solutions Mar 15, 2024 am 10:30 AM

Certains internautes ont constaté que lorsqu'ils ouvraient la page Web du navigateur, les images de la page Web ne pouvaient pas être chargées pendant une longue période. Que s'est-il passé ? J'ai vérifié que le réseau est normal, alors quel est le problème ? L'éditeur ci-dessous vous présentera six solutions au problème de l'impossibilité de charger les images de pages Web. Les images de la page Web ne peuvent pas être chargées : 1. Problème de vitesse Internet La page Web ne peut pas afficher les images. Cela peut être dû au fait que la vitesse Internet de l'ordinateur est relativement lente et qu'il y a davantage de logiciels ouverts sur l'ordinateur et que les images auxquelles nous accédons sont relativement volumineuses. peut être dû à un délai de chargement. Par conséquent, l'image ne peut pas être affichée. Vous pouvez désactiver le logiciel qui utilise la vitesse du réseau et le vérifier dans le gestionnaire de tâches. 2. Trop de visiteurs Si la page Web ne peut pas afficher d'images, c'est peut-être parce que les pages Web que nous avons visitées ont été visitées en même temps.

Comment convertir des documents PDF en images jpg avec Foxit PDF Reader - Comment convertir des documents PDF en images jpg avec Foxit PDF Reader Comment convertir des documents PDF en images jpg avec Foxit PDF Reader - Comment convertir des documents PDF en images jpg avec Foxit PDF Reader Mar 04, 2024 pm 05:49 PM

Utilisez-vous également le logiciel Foxit PDF Reader ? Alors, savez-vous comment Foxit PDF Reader convertit les documents PDF en images jpg ? L'article suivant vous explique comment Foxit PDF Reader convertit les documents PDF en images jpg ? images jpg, venez jeter un oeil ci-dessous. Démarrez d'abord Foxit PDF Reader, puis recherchez « Fonctionnalités » dans la barre d'outils supérieure, puis sélectionnez la fonction « PDF vers autres ». Ensuite, ouvrez une page Web intitulée « Foxit PDF Online Conversion ». Cliquez sur le bouton « Connexion » en haut à droite de la page pour vous connecter, puis activez la fonction « PDF to Image ». Cliquez ensuite sur le bouton de téléchargement et ajoutez le fichier pdf que vous souhaitez convertir en image. Après l'avoir ajouté, cliquez sur "Démarrer la conversion".

Comment disposer deux images côte à côte dans un document wps Comment disposer deux images côte à côte dans un document wps Mar 20, 2024 pm 04:00 PM

Lors de l'utilisation du logiciel bureautique WPS, nous avons constaté que non seulement un formulaire est utilisé, mais que des tableaux et des images peuvent être ajoutés au texte, des images peuvent également être ajoutées au tableau, etc. Ceux-ci sont tous utilisés ensemble pour créer le contenu de l'ensemble du document. paraître plus riche, si vous devez insérer deux images dans le document et qu’elles doivent être disposées côte à côte. Notre prochain cours résoudra ce problème : comment placer deux images côte à côte dans un document wps. 1. Tout d'abord, vous devez ouvrir le logiciel WPS et trouver l'image que vous souhaitez ajuster. Faites un clic gauche sur l'image et une barre de menu apparaîtra, sélectionnez "Mise en page". 2. Sélectionnez « Emballage serré » dans l'habillage du texte. 3. Une fois que toutes les images dont vous avez besoin ont été confirmées comme étant définies sur « Habillage de texte serré », vous pouvez faire glisser les images vers la position appropriée et cliquer sur la première image.

Recommandé : Excellent projet de détection et de reconnaissance des visages open source JS Recommandé : Excellent projet de détection et de reconnaissance des visages open source JS Apr 03, 2024 am 11:55 AM

La technologie de détection et de reconnaissance des visages est déjà une technologie relativement mature et largement utilisée. Actuellement, le langage d'application Internet le plus utilisé est JS. La mise en œuvre de la détection et de la reconnaissance faciale sur le front-end Web présente des avantages et des inconvénients par rapport à la reconnaissance faciale back-end. Les avantages incluent la réduction de l'interaction réseau et de la reconnaissance en temps réel, ce qui réduit considérablement le temps d'attente des utilisateurs et améliore l'expérience utilisateur. Les inconvénients sont les suivants : il est limité par la taille du modèle et la précision est également limitée ; Comment utiliser js pour implémenter la détection de visage sur le web ? Afin de mettre en œuvre la reconnaissance faciale sur le Web, vous devez être familier avec les langages et technologies de programmation associés, tels que JavaScript, HTML, CSS, WebRTC, etc. Dans le même temps, vous devez également maîtriser les technologies pertinentes de vision par ordinateur et d’intelligence artificielle. Il convient de noter qu'en raison de la conception du côté Web

See all articles