css实现3D动画

使用css3实现3d旋转动画

今天给大家带来的是使用css3实现旋转动画首先我们来看代码

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div id="big">
        <div id="first"><img src="wallhaven-5wr583.png"/></div>
        <div id="second"><img src="wallhaven-wymoeq.jpg"/></div>
        <div id="third"><img src="wallhaven-q6l3jq.jpg"/></div>
        <div id="fourth"><img src="wallhaven-wym8vx.png"/></div>
        <div id="fifth"><img src="wallhaven-13x79v.jpg"/></div>
        <div id="sixth"><img src="wallhaven-39r5xv.jpg"/></div>
    </div>
<body>
</html>

首先我们先画一个大盒子,也就是旋转的容器,然后在里面再去添加几个小盒子用来展示图片。接着就设置css样式了
首先我们给这个大盒子的perspective属性设置透视距离就可以让里面的一张图片设置在后面而且不会被覆盖;
不过要注意的是设置perspective属性的时候只能比盒子的大,不然盒子会变形,设置个100000px都没问题;
然后通过大盒子的transform-style属性来设置成3D样式不然到时候设置里面小盒子的旋转平移的时候就会要在每个形变函数后面加上3D;这样就很麻烦;

#big{
    perspective: 10000px;
    position: relative;/*设置透视*/
    top: 300px;
    left: 200px;
    transform-style: preserve-3d;/*设置成3D样式*/
    animation: name 8s linear;
    width: 500px;
    height: 500px;
}
#big div{
    width: 500px;
    height: 500px;
    position: absolute;
}
img{
    width: 100%;
    height: 100%;
}

然后通过translate和rotate函数来设置各个小盒子的位置

/*最左边的图片位置*/
#first{
    transform:translateX(-250px)rotateY(-90deg);
}
/*最前面的图片位置*/
#second{
    transform:translateZ(250px);
}
/*最右边的图片位置*/
#third{
    transform: translateX(250px) rotateY(90deg);
}
/*最后面的图片位置*/
#fourth{
    transform: translateZ(-250px);
}
/*最下面的图片位置*/
#fifth{
    transform: translateY(250px) rotateX(90deg);
}
/*最上面的图片位置*/
#sixth{
    transform: translateY(-250px) rotateX(90deg);
}

然后设置大盒子的旋转动画

@keyframes name {
    0%{
        transform: rotateX(0deg) rotateY(0deg);
    }
    33%{
        transform: rotateY(120deg) rotateX(120deg);
    }
    66%{
        transform: rotateY(240deg) rotateX(240deg);
    }
    100%{
        transform: rotateY(360deg) rotateX(360deg);
    }
}

最后出现的效果就是如下图所示

在这里插入图片描述

在这里插入图片描述总结:设置这些图片位置的时候可以一张一张设置,不一定要一次性全部设置,不然到时候容易乱套,还有心态很重要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值