Today we are going to continue to share here a CSS3 based focus map plugin, which features an image switching container that is a 3D cube that renders that image in front of the cube when you click on the image.
Advertisement
<div class="cube-container"> <div class="cube initial-position"> <img class="cube-face-image image-1" src="images/p1300.jpg"> <img class="cube-face-image image-2" src="images/p2300.jpg"> <img class="cube-face-image image-3" src="images/p3300.jpg"> <img class="cube-face-image image-4" src="images/p4300.jpg"> <img class="cube-face-image image-5" src="images/p5300.jpg"> <img class="cube-face-image image-6" src="images/p6300.jpg"> </div> </div> <h2>Click the images below to rotate the cube</h2> <div class="image-buttons"> <input type="image" class="show-image-1" src="images/p1100.jpg"></input> <input type="image" class="show-image-2" src="images/p2100.jpg"></input> <input type="image" class="show-image-3" src="images/p3100.jpg"></input> <input type="image" class="show-image-4" src="images/p4100.jpg"></input> <input type="image" class="show-image-5" src="images/p5100.jpg"></input> <input type="image" class="show-image-6" src="images/p6100.jpg"></input> </div>
body {
font-family: "Montserrat", Arial, sans-serif;
font-weight: 500;
line-height: 1.5;
text-align: center;
min-height: 100vh;
padding: 4rem 2rem;
color: #fafafa;
background-color: #080808;
}
h1 {
font-size: 4rem;
}
h2 {
font-size: 2rem;
margin-bottom: 2.5rem;
}
.cube-container {
position: relative;
width: 30rem;
height: 30rem;
margin: 5rem auto 6rem;
perspective: 100rem;
}
.cube {
position: absolute;
width: 100%;
height: 100%;
transform-style: preserve-3d;
transition: transform 1s cubic-bezier(0.32, 0.05, 0.35, 1.6);
}
window.addEventListener("DOMContentLoaded", function () {
var cube = document.querySelector(".cube"),
imageButtons = document.querySelector(".image-buttons");
var cubeImageClass = cube.classList[1];
imageButtons.addEventListener("click", function (e) {
var targetNode = e.target.nodeName,
targetClass = e.target.className;
if (targetNode === "INPUT" && targetClass !== cubeImageClass) {
console.log("Show Image: " + targetClass.charAt(11));
cube.classList.replace(cubeImageClass, targetClass);
cubeImageClass = targetClass;
}
});
});
Advertisement