Maison > interface Web > tutoriel CSS > le corps du texte

Comment obtenir un effet d'affichage de rotation d'image avec CSS (exemple de code)

青灯夜游
Libérer: 2018-11-07 17:25:40
original
4090 Les gens l'ont consulté

Le contenu de cet article est d'introduire l'utilisation de css+js pour faire pivoter des images à travers des exemples de code et de créer un carrousel de photos "infini" à commande manuelle. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

Nous allons maintenant commencer à présenter comment obtenir cet effet.

1. Construisez le cadre du carrousel d'images

Le premier est HTML. C'est un peu plus difficile à lire car nous avons supprimé les espaces ou les retours chariot entre les éléments. De cette façon, nous pouvons référencer différentes images plus facilement à l'aide de JavaScript : les espaces ou les lignes créent de nouveaux nœuds dans certains navigateurs.

<div id="stage">
<div id="rotator"><a href="snow1.jpg"><img  src="snow1.jpg"    style="max-width:90%" alt="Comment obtenir un effet d'affichage de rotation d'image avec CSS (exemple de code)" ></a><a href="snow2.jpg"><img  src="snow2.jpg"    style="max-width:90%" alt="Comment obtenir un effet d'affichage de rotation d'image avec CSS (exemple de code)" ></a><a href="snow3.jpg"><img  src="snow3.jpg"    style="max-width:90%" alt="Comment obtenir un effet d'affichage de rotation d'image avec CSS (exemple de code)" ></a><a href="snow4.jpg"><img  src="snow4.jpg"    style="max-width:90%" alt="Comment obtenir un effet d'affichage de rotation d'image avec CSS (exemple de code)" ></a><a href="snow5.jpg"><img  src="snow5.jpg"    style="max-width:90%" alt="Comment obtenir un effet d'affichage de rotation d'image avec CSS (exemple de code)" ></a><a href="snow6.jpg"><img  src="snow6.jpg"    style="max-width:90%" alt="Comment obtenir un effet d'affichage de rotation d'image avec CSS (exemple de code)" ></a><a href="snow7.jpg"><img  src="snow7.jpg"    style="max-width:90%" alt="Comment obtenir un effet d'affichage de rotation d'image avec CSS (exemple de code)" ></a><a href="snow8.jpg"><img  src="snow8.jpg"    style="max-width:90%" alt="Comment obtenir un effet d'affichage de rotation d'image avec CSS (exemple de code)" ></a></div>
</div>

<p id="controls"><a href="#" onclick="rollLeft(document.getElementById(&#39;rotator&#39;)); return false;">←</a>
 <a href="#" onclick="rollRight(document.getElementById(&#39;rotator&#39;)); return false;">→</a></p>
Copier après la connexion

Comme vous pouvez le constater, il n’y a pas grand chose à expliquer là-bas. La galerie est contenue dans un DIV et comprend les photos/liens répertoriés, puis quelques liens de navigation avec des événements onclick.

2. Disposition des photos dans l'espace 3D

La forme est plus complexe. Ce que nous faisons ici, c'est donner aux cinq premières photos une forme concave et masquer toutes les photos supplémentaires (pour l'instant). Les photos externes pivotent de 60 degrés et les photos adjacentes pivotent de 30 degrés. La photo centrale est retirée de la page.

#stage {
    margin: 1em auto;
    height: 120px;
  }
  #rotator {
    position: absolute;
    white-space: nowrap;
    -webkit-perspective: 1200px;
    -moz-perspective: 1200px;
  }
  #rotator a img {
    position: relative;
    padding: 10px;
    border: 1px solid #ccc;
    vertical-align: middle;
  }
  #rotator a:nth-child(1) img {
    -webkit-transform-origin: 100% 50% 0;
    -webkit-transform: rotateY(-60deg);
    -moz-transform-origin: 100% 50% 0;
    -moz-transform: rotateY(-60deg);
  }
  #rotator a:nth-child(2) img {
    -webkit-transform-origin: 0 50% 0;
    -webkit-transform: rotateY(-30deg);
    -moz-transform-origin: 0 50% 0;
    -moz-transform: rotateY(-30deg);
  }
  #rotator a:nth-child(3) img {
    -webkit-transform: translateZ(220px);
    -moz-transform: translateZ(220px);
  }
  #rotator a:nth-child(4) img {
    -webkit-transform-origin: 100% 50% 0;
    -webkit-transform: rotateY(30deg);
    -moz-transform-origin: 100% 50% 0;
    -moz-transform: rotateY(30deg);
  }
  #rotator a:nth-child(5) img {
    -webkit-transform-origin: 0 50% 0;
    -webkit-transform: rotateY(60deg);
    -moz-transform-origin: 0 50% 0;
    -moz-transform: rotateY(60deg);
  }
  #rotator a:nth-child(n+6) {
    display: none;
  }
Copier après la connexion

Afin de référencer une seule photo/lien, nous utilisons la pseudo-classe nième-enfant (si elle n'est pas claire, merci de vous référer à l'article précédent [Explication détaillée du pseudo css -class nth-child() exemple】Introduction). Dans ce cas, le lien (A) est un enfant du DIV parent. Sans liens, les enfants seront des éléments IMG.

3. Faire pivoter les photos

Le petit JavaScript (onclick) que vous avez vu auparavant appelle la fonction suivante. Tout ce qu'ils font, c'est prendre un élément d'une extrémité du tableau photos dans le DOM et le déplacer à l'autre extrémité :

<script type="text/javascript">
  function rollRight(el)
  {
    el.insertBefore(el.lastChild, el.firstChild);
  }
  function rollLeft(el)
  {
    el.appendChild(el.firstChild);
  }
</script>
Copier après la connexion

Le code JavaScript doit (presque toujours) être placé en bas de la page. .

La première fonction prendra le nœud contenant la dernière photo/lien (visible ou caché) et le placera avant la première photo/lien. La deuxième fonction récupère la première photo/lien et la déplace à la fin de la ligne. Utiliser onclick n'est pas l'approche la plus élégante, mais pour l'instant c'est suffisant.

Au fur et à mesure que les nœuds bougent, ils adoptent le style attribué à la nouvelle position (1,2,3,4,5 ou 6+), donc tout ce que nous avons à faire est de changer leur position sans nous soucier du mouvement ou de la rotation.

4. Affichage des effets

Ici, vous pouvez voir un exemple de carrousel de photos rotatif :

Comment obtenir un effet daffichage de rotation dimage avec CSS (exemple de code)

Vous C'est fini, vous pouvez l'essayer vous-même !

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal