这是一款js和CSS3 3D立方体图片画廊特效。该3D立方体图片画廊特效通过CSS3进行布局,构建立方体,然后通过简单的js代码来完成点击缩略图进行立方体旋转的操作。
由于该该3D立方体图片画廊特效中使用了CSS变量和CSS grid,所以不是所以浏览器都支持该特效。
使用方法
在页面中引入样式文件style.css。
<link href="css/style.css" rel="stylesheet">
HTML结构
该3D立方体图片画廊特效的HTML结构如下:
<!--立方体图片画廊--> <div class="cube-container"> <div class="cube initial-position"> <img class="cube-face-image image-1" src="img/1.jpg"> <img class="cube-face-image image-2" src="img/2.jpg"> <img class="cube-face-image image-3" src="img/3.jpg"> <img class="cube-face-image image-4" src="img/4.jpg"> <img class="cube-face-image image-5" src="img/5.jpg"> <img class="cube-face-image image-6" src="img/6.jpg"> </div> </div> <!-- 缩略图 --> <div class="image-buttons"> <input type="image" class="show-image-1" src="img/1.jpg"></input> <input type="image" class="show-image-2" src="img/2.jpg"></input> <input type="image" class="show-image-3" src="img/3.jpg"></input> <input type="image" class="show-image-4" src="img/4.jpg"></input> <input type="image" class="show-image-5" src="img/5.jpg"></input> <input type="image" class="show-image-6" src="img/6.jpg"></input> </div>
Javascript
然后在页面加载完毕之后,通过下面的js代码来完成点击缩略图旋转立方体的功能。
window.addEventListener("DOMContentLoaded", function () { var cube = document.querySelector(".cube"), imageButtons = document.querySelector(".image-buttons"); var cubeImageClass = cube.classList[1]; //Add click event listener to image buttons container imageButtons.addEventListener("click", function (e) { //Get node type and class value of clicked element var targetNode = e.target.nodeName, targetClass = e.target.className; //Check if image input has been clicked and isn't the currently shown image if (targetNode === "INPUT" && targetClass !== cubeImageClass) { console.log("Show Image: " + targetClass.charAt(11)); //Replace previous cube image class with new class cube.classList.remove(cubeImageClass); cube.classList.add(targetClass); //Update cube image class variable with new class cubeImageClass = targetClass; } }); });
该3D立方体图片画廊特效的codepen地址为:https://codepen.io/GeorgePark/pen/gegavO