3D旋转相册html+css代码分享

3D旋转相册html+css代码分享

首先看效果:

在这里插入图片描述
html代码:

<!Doctype html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>3d旋转相册</title>
        <link rel="stylesheet" href="demo.css">
    </head>
    <body>
        <!--准备一个包裹器-->
        <div id="wrap">
        <!--将立方体包裹在其中-->
        <span id="in-front"><img src="img/1.jpg"></span>
        <span id="in-left"><img src="img/2.jpg"></span>
        <span id="in-right"><img src="img/3.jpg"></span>
        <span id="in-back"><img src="img/4.jpg"></span>
        <span id="in-top"><img src="img/5.jpg"></span>
        <span id="in-bottom"><img src="img/6.jpg"></span>
        <!--第三步组装外部的立方体-->
        <div id="out-front"><img src="img/7.jpg"></div>
        <div id="out-left"><img src="img/8.jpg"></div>
        <div id="out-right"><img src="img/9.jpg"></div>
        <div id="out-back"><img src="img/10.jpg"></div>
        <div id="out-top"><img src="img/11.jpg"></div>
        <div id="out-bottom"><img src="img/12.jpg"></div>
        </div>
    </body>
</html>

CSS代码:

body{
    background: url("img/13.jpg") no-repeat center center fixed;
                -webkit-background-size: cover;
                -o-background-size: cover;                
                background-size: cover;
}
#wrap span{
    display: block;
    width:100px;
    height:100px;
    background-color: rgb(10, 118, 212);
    position: absolute;
    top:50px;
    left:50px;
}

#wrap{
    width: 100px;
    height:100px;
    margin:300px auto;
    animation: rotate 20s infinite;
    transform-style:preserve-3d ;
}

#wrap span img{
    width:100px;
    height:100px;
}

#in-front{
    transform: translateZ(50px);
}

#in-back{
    transform: translateZ(-50px);
}

#in-left{
    transform: rotateY(90deg)  translateZ(50px);
}

#in-right{
    transform:  rotateY(-90deg) translateZ(50px);
}

#in-top{
    transform:   rotateX(90deg) translateZ(50px);
}

#in-bottom{
    transform:  rotateX(-90deg) translateZ(50px);
}

@keyframes rotate{
    from{
        transform: rotateX(0deg)  rotateY(0deg);
    }
    to{
        transform: rotateX(360deg) rotateY(360deg);
    }
}

#wrap div{
    width:200px;
    height:200px;
    background-color: brown;
    position: absolute;
}
#wrap div img{
    width:200px;
    height:200px;
}

#out-front{
    transform: translateZ(100px);
}

#out-back{
    transform: translateZ(-100px);
}

#out-left{
    transform: rotateY(90deg)  translateZ(100px);
}

#out-right{
    transform:  rotateY(-90deg) translateZ(100px);
}

#out-top{
    transform:   rotateX(90deg) translateZ(100px);
}

#out-bottom{
    transform:  rotateX(-90deg) translateZ(100px);
}

#wrap:hover #out-front{
    transform: translateZ(150px);
}

#wrap:hover #out-left{
    transform: rotateY(90deg)  translateZ(150px);
}

#wrap:hover #out-right{
    transform:  rotateY(-90deg) translateZ(150px);
}

#wrap:hover #out-back{
    transform: translateZ(-150px);
}

#wrap:hover #out-top{
    transform:   rotateX(90deg) translateZ(150px);
}
#wrap:hover #out-bottom{
    transform:  rotateX(-90deg) translateZ(150px);
}

代码直接粘贴复制即可,图片可以自行选取,昨天是我一个好朋友的生日,本来想给她敲一个比较好看的特效的,但是无奈前端水平不够短时间内根本敲不出来,书到用时方恨少啊……从今天开始再学习前端吧!加油

  • 37
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 26
    评论
好的,这是一个比较复杂的问题,需要一定的HTML5CSS3技能,我会尽可能地为您解答。首先,我们需要一个包含所有图片的容器,然后通过CSS3的transform属性来实现3D旋转效果。 以下是一个基本的HTML结构: ``` <div class="container"> <figure class="card"> <img src="image1.jpg"> </figure> <figure class="card"> <img src="image2.jpg"> </figure> <figure class="card"> <img src="image3.jpg"> </figure> <figure class="card"> <img src="image4.jpg"> </figure> <figure class="card"> <img src="image5.jpg"> </figure> </div> ``` 然后,我们需要为容器和每个图片分别设置样式: ``` .container { perspective: 1000px; /* 设置透视距离 */ width: 500px; margin: 0 auto; } .card { display: inline-block; width: 200px; height: 150px; margin: 20px; transform-style: preserve-3d; /* 启用3D变换 */ transition: transform 1s; /* 设置过渡效果 */ } .card:hover { transform: rotateY(180deg); /* 鼠标悬停时旋转180度 */ } .card img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; backface-visibility: hidden; /* 隐藏反面 */ } ``` 这里我们使用了perspective属性来设置透视距离,使得图片在旋转时可以呈现出3D效果。同时,我们使用transform-style属性启用了3D变换,并且设置了过渡效果,使得旋转时更加平滑。当鼠标悬停在图片上时,我们通过transform属性旋转图片180度,实现立体旋转的效果。 最后,我们需要通过CSS3的动画效果来使得相册自动旋转。以下是示例代码: ``` .container { animation: spin 10s infinite linear; } @keyframes spin { from { transform: rotateY(0deg); } to { transform: rotateY(360deg); } } ``` 这里我们设置了一个名为spin的动画,使得容器在10秒内无限循环旋转360度。通过这个动画,我们就可以实现一个自动旋转3D相册。 希望这个简单的示例能够帮助您理解如何使用HTML5CSS3实现3D立体旋转相册。如果您还有其他问题,请随时提出。
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值