css旋转中心-(二十六)巧用CSS3轮播

2023-08-22 0 334 百度已收录

持续创造,加速成长!这是我参加“掘金每日新计划·六月更新挑战”的第13天,点击查看活动详情

风吹着,呼呼地吹着门,让我想起了操场上的旋转木马,当然,之前我也写过这样的文章:css勾勒出旋转木马,不过这次是根据另外一个这个方法来实现的,并且它还减少了一些反射效应。 有兴趣的可以对比一下两篇文章。

轮播结构

如今css旋转中心,六张面孔被用作特洛伊木马。 如果需要更多,需要添加domcss旋转中心,或者通过js添加,并配置一个动态参数。 这里只是先写dom的情况,如下:

css旋转中心-(二十六)巧用CSS3轮播

<div class="camera">
    <div class="container">
        <div style="--i:0"></div>
        <div style="--i:1"></div>
        <div style="--i:2"></div>
        <div style="--i:3"></div>
        <div style="--i:4"></div>
        <div style="--i:5"></div>
    </div>
</div>

相机代表视角,容器代表轮播。

风格

css旋转中心-(二十六)巧用CSS3轮播

首先,我们为每个木马定义一个大小,并给木马一个3D容器,如下:

.container {
    --size: 15rem;
    position: relative;
    width: var(--size);
    height: var(--size);
    transform-style: preserve-3d;
}

其次,我们需要给每个木马一个样式,需要旋转、位移并赋予反射效果,如下:

css旋转中心-(二十六)巧用CSS3轮播

.container div {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    background: radial-gradient(transparent,cyan);
    transform: rotateY(calc(var(--i) * 60deg)) translateZ(calc(var(--size) * 1));
    filter: hue-rotate(calc(var(--i) * 60deg));
    -webkit-box-reflect: below 1px linear-gradient(transparent,transparent,#0004);
}

这里需要注意的是:给定木马数量为6,所以旋转角度的间隔为60deg,如果木马数量为n,则旋转角度的间隔为(360/n)deg。

接下来我们需要给出一个观看轮播的视角,如下:

.camera {
    transform-style: preserve-3d;
    transform: rotateX(55deg);
}

最后我们需要让木马动起来,所以我们需要添加一个简单的动画,如下:

.container {
    animation: _animate 6s linear infinite;
}
@keyframes _animate{
    100%{
        transform: rotateY(360deg);
    }
}

影响

效果及其代码详情如下:

总结

3D视觉会让三维的感觉更加清晰,这样我们就可以做很多三维的效果来展现我们所表达的内容。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 css css旋转中心-(二十六)巧用CSS3轮播 https://www.wkzy.net/game/141264.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务