温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用HTML+CSS+JS制作3D立方体图像库

发布时间:2022-12-01 17:50:39 阅读:100 作者:iii 栏目:编程语言
前端开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章主要介绍了如何使用HTML+CSS+JS制作3D立方体图像库的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何使用HTML+CSS+JS制作3D立方体图像库文章都会有所收获,下面我们一起来看看吧。

图片效果

如何使用HTML+CSS+JS制作3D立方体图像库

HTML结构代码

<html>

<head>
    <meta charset="utf-8">
    <script id="jqbb" src="https://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
    <style type="text/css">:root {
            /* Base font size */
            font-size10px;
            /* Border color variable */
            --border-color#e70;
        }

        * {
            box-sizing: border-box;
        }

        body {
            font-family"Montserrat", Arial, sans-serif;
            font-weight500;
            line-height1.5;
            text-align: center;
            min-height100vh;
            padding4rem 2rem;
            color#fafafa;
            background-color#080808;
        }

        h2 {
            font-size4rem;
        }

        h3 {
            font-size2rem;
            margin-bottom2.5rem;
        }

        .cube-container {
            position: relative;
            width30rem;
            height30rem;
            margin18rem auto 6rem;
            perspective100rem;
        }

        .cube {
            position: absolute;
            width100%;
            height100%;
            transform-style: preserve-3d;
            transition: transform 1s cubic-bezier(0.320.050.351.6);
        }

        .cube-face-image {
            display: block;
            position: absolute;
            /* opacity: 0.95; */
            /* border: 0.2rem solid #fafafa; */
            box-shadow0 0 0.5rem #fff0 0 1.5rem var(--border-color), 0 0 3rem var(--border-color);
        }

        .image-buttons {
            display: grid;
            grid-template-columnsrepeat(3, auto);
            grid-gap1.5rem;
            justify-content: center;
        }

        .image-buttons input {
            border0.2rem solid #fafafa;
        }

        .image-buttons input:focus {
            outline: none;
            border0.2rem solid var(--border-color);
        }

        /* Transform images to create cube */

        .image-1 {
            transformtranslateZ(15rem);
        }

        .image-2 {
            transformrotateX(-180degtranslateZ(15rem);
        }

        .image-3 {
            transformrotateY(90degtranslateZ(15rem);
        }

        .image-4 {
            transformrotateY(-90degtranslateZ(15rem);
        }

        .image-5 {
            transformrotateX(90degtranslateZ(15rem);
        }

        .image-6 {
            transformrotateX(-90degtranslateZ(15rem);
        }

        /* Transform cube to show correct image */

        .cube.initial-position {
            transformtranslateZ(-15remtranslateY(-2remrotateX(-15degrotateY(18degrotateZ(2deg);
        }

        .cube.show-image-1 {
            transformtranslateZ(-15rem);
        }

        .cube.show-image-2 {
            transformtranslateZ(-15remrotateX(180deg);
        }

        .cube.show-image-3 {
            transformtranslateZ(-15remrotateY(-90deg);
        }

        .cube.show-image-4 {
            transformtranslateZ(-15remrotateY(90deg);
        }

        .cube.show-image-5 {
            transformtranslateZ(-15remrotateX(-90deg);
        }

        .cube.show-image-6 {
            transformtranslateZ(-15remrotateX(90deg);
        }

        .image-buttons input {
            width104px;
           
        }
        .clickText{
            margin-top150px;
        }</style>
</head>

<body>
    <div class="cube-container">
        <div class="cube initial-position">
            <img class="cube-face-image image-1" src="./images/1.jpg">
            <img class="cube-face-image image-2" src="./images/2.jpg">
            <img class="cube-face-image image-3" src="./images/3.jpg">
            <img class="cube-face-image image-4" src="./images/4.jpg">
            <img class="cube-face-image image-5" src="./images/5.jpg">
            <img class="cube-face-image image-6" src="./images/6.jpg">
        </div>
    </div>
    <h3 class="clickText">点击下面的图片来旋转立方体</h3>
    <div class="image-buttons">
        <input type="image" class="show-image-1" src="./images/1.jpg"></input>
        <input type="image" class="show-image-2" src="./images/2.jpg"></input>
        <input type="image" class="show-image-3" src="./images/3.jpg"></input>
        <input type="image" class="show-image-4" src="./images/4.jpg"></input>
        <input type="image" class="show-image-5" src="./images/5.jpg"></input>
        <input type="image" class="show-image-6" src="./images/6.jpg"></input>
    </div>
</body>
<script>//DOM load event
    window.addEventListener("DOMContentLoaded"() => {

        const cube = document.querySelector(".cube"),
            imageButtons = document.querySelector(".image-buttons");
        let cubeImageClass = cube.classList[1];

        //Add click event listener to image buttons container
        imageButtons.addEventListener("click"(e) => {

            //Get node type and class value of clicked element
            const 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.replace(cubeImageClass, targetClass);

                //Update cube image class variable with new class
                cubeImageClass = targetClass;

            }

        }, false);

    }, false);</script>

</html>

关于“如何使用HTML+CSS+JS制作3D立方体图像库”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“如何使用HTML+CSS+JS制作3D立方体图像库”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://blog.51cto.com/u_15398742/5729872

AI

开发者交流群×