Cet article explique comment utiliser jQuery CSS3 pour obtenir un effet de rotation de cube 3D. Jetez d'abord un œil au rendu :
.Pendant le processus de changement d'image, l'image pivotera :
Structure HTML
La liste d'images et le bouton de navigation de la galerie d'images 3D sont constitués respectivement de deux listes non ordonnées.
<section> <div id="css3dimageslider" class="transparency"> <ul> <li> <img src="img/css3dimg1.jpg"> </li> <li> <img src="img/css3dimg2.jpg"> </li> <li> <img src="img/css3dimg3.jpg"> </li> <li> <img src="img/css3dimg4.jpg"> </li> </ul> </div> <ul id="css3dimagePager"> <li class="active">Image 1</li> <li>Image 2</li> <li>Image 3</li> <li>Image 4</li> </ul> <p id="css3dtransparency" class="active">点击上面的按钮切换图片</p> </section>
Style CSS
Afin de créer un effet de perspective 3D, vous devez définir l'attribut perspective sur l'élément #css3dimageslider et définir transform-style:preserve-3d; sur l'élément de liste non ordonnée à l'intérieur. Puisque le navigateur IE ne prend pas en charge cet attribut, donc. dans le navigateur IE L'effet n'est pas visible sur l'appareil. Ensuite, sélectionnez chaque élément de la liste séparément via le sélecteur :nth-child et transformez-les en 3D via les attributs translateZ et rotateY pour former un effet de cube.
#css3dimagePager, #css3dtransparency { text-align: center; position: relative; z-index: 11; padding: 0 0 10px; margin: 0; } #css3dimagePager li { padding-right: 2em; display: inline-block; cursor: pointer; } #css3dimagePager li.active, #css3dtransparency.active { font-weight: bold; } #css3dimageslider { -webkit-perspective: 800; -moz-perspective: 800px; -ms-perspective: 800; perspective: 800; -webkit-perspective-origin: 50% 100px; -moz-perspective-origin: 50% 100px; -ms-perspective-origin: 50% 100px; perspective-origin: 50% 100px; margin: 100px auto 20px auto; width: 450px; height: 400px; } #css3dimageslider ul { position: relative; margin: 0 auto; height: 281px; width: 450px; list-style: none; -webkit-transform-style: preserve-3d; -moz-transform-style: preserve-3d; -ms-transform-style: preserve-3d; transform-style: preserve-3d; -webkit-transform-origin: 50% 100px 0; -moz-transform-origin: 50% 100px 0; -ms-transform-origin: 50% 100px 0; transform-origin: 50% 100px 0; -webkit-transition: all 1.0s ease-in-out; -moz-transition: all 1.0s ease-in-out; -ms-transition: all 1.0s ease-in-out; transition: all 1.0s ease-in-out; } #css3dimageslider ul li { position: absolute; height: 281px; width: 450px; padding: 0px; } #css3dimageslider ul li:nth-child(1) { -webkit-transform: translateZ(225px); -moz-transform: translateZ(225px); -ms-transform: translateZ(225px); transform: translateZ(225px); } #css3dimageslider ul li:nth-child(2) { -webkit-transform: rotateY(90deg) translateZ(225px); -moz-transform: rotateY(90deg) translateZ(225px); -ms-transform: rotateY(90deg) translateZ(225px); transform: rotateY(90deg) translateZ(225px); } #css3dimageslider ul li:nth-child(3) { -webkit-transform: rotateY(180deg) translateZ(225px); -moz-transform: rotateY(180deg) translateZ(225px); -ms-transform: rotateY(180deg) translateZ(225px); transform: rotateY(180deg) translateZ(225px); } #css3dimageslider ul li:nth-child(4) { -webkit-transform: rotateY(-90deg) translateZ(225px); -moz-transform: rotateY(-90deg) translateZ(225px); -ms-transform: rotateY(-90deg) translateZ(225px); transform: rotateY(-90deg) translateZ(225px); } #css3dimageslider.transparency img { opacity: 0.7; }
JavaScript
Enfin, dans le code jQuery, lorsque l'on clique sur le bouton, l'attribut rotateY de l'élément #css3dimageslider ul correspondant est utilisé pour faire pivoter l'élément et lui ajouter une classe .active.
<script> $(document).ready(function() { $("#css3dimagePager li").click(function(){ var rotateY = ($(this).index() * -90); $("#css3dimageslider ul").css({"-webkit-transform":"rotateY("+rotateY+"deg)", "-moz-transform":"rotateY("+rotateY+"deg)", "-ms-transform":"rotateY("+rotateY+"deg)", "transform":"rotateY("+rotateY+"deg)"}); $("#css3dimagePager li").removeClass("active"); $(this).addClass("active"); }); $("#css3dtransparency").click(function() { $("#css3dimageslider").toggleClass("transparency"); $(this).toggleClass("active"); }); }); </script>
Ce qui précède est le partage de code clé de jQuery combiné avec CSS3 pour créer un effet de rotation de cube 3D. J'espère que cela sera utile à l'apprentissage de chacun.