CSS(五) -- 动效实现(立体盒子旋转-四方体+正六边)

一. 四面立体旋转

正方形旋转

小程序中
wxss中

<!-- 背景 -->
 <view class="dragon">
 	<!--旋转物体位置-->
    <view class="dragon-position">
    	<!--旋转 加透视 有立体的感觉-->
        <view class="d-parent">
            <view class="d-box d-box1">1</view>
            <view class="d-box d-box2">2</view>
            <view class="d-box d-box3">3</view>
            <view class="d-box d-box4">4</view>
        </view>
    </view>
</view>

 /* 设置动画 */
 @keyframes word {
    0% {
        transform: rotateY(0);
    }
    100% {
        transform: rotateY(360deg);
    }
}



/*
设置每个面的盒子宽度 W = 72  

translate3d(X,Y,Z)

*/
 .d-parent  {
 
    transform-style: preserve-3d;  /* 3D呈现 */
    transform-origin: 36rpx 0 -36rpx;   /* 3d立体旋转轴 如(图二)所示  x=W/2(方向像右为正方向)  z=W/2 (方向往内为反方向)   */
    transition: all 5s;
    animation: word 5s infinite linear;  /* 动画效果 */
}
/* 每个盒子的大小 以及旋转轴 */
.d-parent .d-box {
    width: 72rpx;
    height: 72rpx;
    position: absolute;
    top: 0;
    left: 0;
    transform-origin: 36rpx 0 0;   /* 这里的旋转轴统一为整个面的中心线(图一) */
    
}
.d-box1 {
/*第一个盒子为正面 不需要变化*/
background-color: rgba(12, 111, 11, 1);
} 
.d-box2 {
    background-color: rgba(222, 0, 0, 1);
    /* 盒子为立体右边方向  先旋转90度  x方向-> x=W/2 z=W/2(往内部走 方向为负)  旋转180度是整个立体旋转的时候 让这个盒子正向  */
    transform:   rotateY(90deg) translate3d(36rpx,0,-36rpx) rotateY(180deg);
}
.d-box3 {
    background-color: rgba(10, 40, 200, 1);
    /* 盒子为最后面方向  直接往后移动 Z=W 旋转180度同理  */
    transform: translate3d(0,0,-72rpx) rotateY(180deg);
}
.d-box4 {
    background-color: rgba(101, 140, 200, 1);
    /* 盒子为立体左边方向 反方向旋转90度 往反方向移动 X=W/2 往后移动 Z=W/2 旋转180度同理   */
    transform:  rotateY(-90deg) translate3d(-36rpx,0,-36rpx) rotateY(180deg);
} 

/* 可以设置图片旋转 盒子中间内容自定义 */
.d-parent .d-box image {
    width: 72rpx;
    display: block;
}

(图一)
其余三个盒子旋转 平移 拼成个立体图形 旋转统一设置成图中所示
在这里插入图片描述

(图二)
·旋转中心轴
在这里插入图片描述

二、正六边形立体旋转

① wxss中
<!-- 背景 -->
 <view class="dragon">
 	<!--旋转物体位置-->
    <view class="dragon-position">
    	<!--旋转 加透视 有立体的感觉-->
         <view class="d-parent">
            <view class="d-box d-box11">1</view>
            <view class="d-box d-box22">2</view>
            <view class="d-box d-box33">3</view>
            <view class="d-box d-box44">4</view>
            <view class="d-box d-box55">5</view>
            <view class="d-box d-box66">6</view>
        </view>
    </view>
</view>
② css中
 /* 设置动画 */
 @keyframes word {
    0% {
        transform: rotateY(0);
    }
    100% {
        transform: rotateY(360deg);
    }
}



/*
设置每个面的盒子宽度 W = 72  

translate3d(X,Y,Z)

*/

.d-parent  {
    transform-style: preserve-3d;
    transform-origin: 36rpx 0 -64rpx; /* 3d立体旋转轴  x=W/2(方向像右为正方向)  z= ( W² - (W/2)² 开根号 (方向往内为反方向) 见图三   */
    transition: all 5s;
    animation: word 5s infinite linear;
}
.d-parent .d-box {
    width: 72rpx;
    height: 72rpx;
    position: absolute;
    top: 0;
    left: 0;
    transform-origin: 36rpx 0 0;  /* 这里的旋转轴统一为整个面的中心线 */
    
}
.d-box11 {
    background-color: rgba(12, 111, 11, 1);
}
.d-box22 {
    background-color: rgba(222, 0, 0, 1);
    /* 右前1 x--> (w/4)*3   z--> ( w² - (w/2)² 开根号)/2  旋转180度同理与正四边形旋转同理*/
    transform: rotateY(120deg) translate3d(54rpx,0,-32rpx) rotateY(180deg);
}
.d-box33 {
    background-color: rgba(10, 40, 200, 1);
    /* 右后1 旋转 再右移 后移  x--> (w/4)*3   z-->  (( w² - (w/2)² 开根号)/2)*3  旋转180度同理 */
    transform: rotateY(60deg) translate3d(54rpx,0,-96rpx) rotateY(180deg);
}
.d-box44 {
    background-color: rgba(101, 140, 200, 1);
     /* 后面  后移  z-->  ( w² - (w/2)² 开根号)*2  旋转180度同理 */
    transform: translate3d(0,0,-120rpx) rotateY(180deg);
}
.d-box55 {
    background-color: rgb(100, 9, 255);
    /* 左后1 反方向旋转 再往左移动往后移动  x--> (w/4)*3   z-->(( w² - (w/2)² 开根号)/2)*3  旋转180度同理 */
    transform: rotateY(-60deg) translate3d(-54rpx,0,-96rpx) rotateY(180deg);
}
.d-box66 {
    background-color: rgb(255, 255, 81);
    /* 左前1 反方向旋转   x--> (w/4)*3   z-->  ( w² - (w/2)² 开根号)/2   旋转180度同理 */
    transform: rotateY(-120deg) translate3d(-54rpx,0,-32rpx) rotateY(180deg);
}

图三
为正六边形的上切图
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/262386.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JVM】一、认识JVM

文章目录 1、虚拟机2、Java虚拟机3、JVM的整体结构4、Java代码的执行流程5、JVM的分类6、JVM的生命周期 1、虚拟机 虚拟机&#xff0c;Virtual Machine&#xff0c;一台虚拟的计算机&#xff0c;用来执行虚拟计算机指令。分为&#xff1a; 系统虚拟机&#xff1a;如VMware&am…

Bash 脚本学习

文章目录 1、脚本编程基础2. 变量2.1 参数变量的引用2.2 环境变量 3 条件判断语句3.1 if 语句3.1.1 语法3.1.2 案例 3.2 case 语句3.2.1 语法3.2.2 案例 3.3 判断参数说明 4 循环语句4.1 for 循环4.1.1 语法4.1.2 案例 4.2 while循环4.2.1 语法4.2.2 案例4. 3 循环总结 5. 函数…

7.串口通信uart编写思路及自定义协议

前言&#xff1a; 串口是很重要的&#xff0c;有许多模块通信接口就是串口&#xff0c;例如gps模块&#xff0c;蓝牙模块&#xff0c;wifi模块还有一些精度比较高的陀螺仪模块等等&#xff0c;所以学会了串口之后&#xff0c;这些听起来很牛批的模块都能够用起来了。此外&#…

RTP/RTCP/RTSP/SIP/SDP/RTMP对比

RTP&#xff08;Real-time Transport Protocol&#xff09;是一种用于实时传输音频和视频数据的协议。它位于传输层和应用层之间&#xff0c;主要负责对媒体数据进行分包、传输和定时。 RTCP&#xff08;Real-Time Control Protocol&#xff09;是 RTP 的控制协议&#xff0c;…

持续集成交付CICD:基于ArgoCD 的GitOps 自动化完成前端项目应用发布与回滚

目录 一、实验 1. 环境 2. K8S master节点部署Argo CD 3.基于ArgoCD 实现GitOps &#xff08;同步部署文件&#xff09; 4.基于ArgoCD 实现GitOps &#xff08;同步HELM文件&#xff09; 二、问题 1. ArgoCD 连接K8S集群状态为 Unknown 2.ArgoCD 创建application失败 …

03-JVM对象创建与内存分配机制深度剖析

文章目录 对象的创建对象创建的主要流程一、类加载检查二、分配内存划分内存的方法解决并发问题的方法 三、初始化零值四、设置对象头五、执行<init>方法 对象半初始化对象大小与指针压缩什么是java对象的指针压缩&#xff1f;为什么要进行指针压缩&#xff1f; 对象内存…

快速学习 webpack

目录 1. webpack基本概念 webpack能做什么&#xff1f; 2. webpack的使用步骤 2.1_webpack 更新打包 3. webpack的配置 3.1_打包流程图 3.2_案例-webpack隔行变色 3.3_插件-自动生成html文件 3.4_加载器 - 处理css文件问题 3.5_加载器 - 处理css文件 3.6_加载器 - 处…

【深入解析spring cloud gateway】12 gateway参数调优与分析

本节主要对网关主要的一些参数做一些解释说明&#xff0c;并用压测工具测试一下网关的接口&#xff0c;通过压测来验证参数配置是否合理 一、连接池参数 参数示例 spring:application:name: gatewaycloud:gateway:# http连接设置httpclient:# 全局的响应超时时间&#xff0c…

驱动开发的完善 --- 芯片手册导读 + I/O口操控代码的编写

在我上上节的博文中&#xff08;linux驱动的学习 & 驱动开发初识-CSDN博客&#xff09;&#xff1a; 我通过一个基本的字符设备驱动框架来测试了驱动的运行&#xff0c;但是在“pin4_open”和“pin4_write”这两个驱动函数的函数体里只写了一句内核打印的代码&#xff0c;作…

微软官方出品:GPT大模型编排工具,支持C#、Python等多个语言版本

随着ChatGPT的火热&#xff0c;基于大模型开发应用已经成为新的风口。虽然目前的大型模型已经具备相当高的智能水平&#xff0c;但它们仍然无法完全实现业务流程的自动化&#xff0c;从而达到用户的目标。 微软官方开源的Semantic Kernel的AI编排工具&#xff0c;就可以很好的…

【深度学习】注意力机制(七)Agent Attention

本文介绍Agent Attention注意力机制&#xff0c;Transformer中的Attention模块可以提取全局语义信息&#xff0c;但是计算量太大&#xff0c;Agent Attention是一种计算非常有效的Attention模块。 论文&#xff1a;Agent Attention: On the Integration of Softmax and Linear…

融资项目——vue之双向数据绑定

上一篇文章中使用的v-bind是单向绑定方法&#xff0c;即数据改变&#xff0c;网页相应的视图发生改变&#xff0c;但是网页视图发生改变其相关联的数据不会发生改变。但是双向数据绑定不同之处在于网页视图发生改变其相关联的数据也会发生改变。Vue可以使用v-model进行双向数据…

docker-compose安装Rocketmq总结,以及如何更换mq端口

默认你已经装好了docker哈 安装docker-compose sudo curl -L https://github.com/docker/compose/releases/download/1.25.1-rc1/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-composechmod x /usr/local/bin/docker-composedocker-compose --version成功打印…

4.2 克隆

一&#xff0c;什么是克隆&#xff1f; 克隆是指通过共享缓冲区来复制内容&#xff08;例如&#xff0c;两个窗口共享相同的内容&#xff09;。 克隆可用于提高性能&#xff1a; 可以减少所需的更新次数。 你可以在多个显示器上显示内容&#xff0c;但只需要更新一个缓冲区…

C# 使用MSTest进行单元测试

目录 写在前面 代码实现 执行结果 写在前面 MSTest是微软官方提供的.NET平台下的单元测试框架&#xff1b;可使用DataRow属性来指定数据&#xff0c;驱动测试用例所用到的值&#xff0c;连续对每个数据化进行运行测试&#xff0c;也可以使用DynamicData 属性来指定数据&…

服务器数据恢复-服务器断电导致linux操作系统数据丢失的数据恢复案例

linux操作系统服务器数据恢复环境&#xff1a; 某品牌R730服务器MD3200系列存储&#xff0c;linux操作系统。 服务器故障&#xff1a; 机房意外断电导致服务器linux操作系统部分文件丢失。 服务器数据恢复过程&#xff1a; 1、将故障服务器连接到北亚企安数据恢复中心备份服务器…

vue3 组合式pinia的使用 案例

需求&#xff1a;用户登录时&#xff0c;结合session实现永久化存贮个人信息 import { computed, ref } from vue import { defineStore } from pinia import { logOn } from /service// sessionStorage的封装 import { SET_USER_TOKEN, STORAGE_GET, STORAGE_SET } from /util…

【PyTorch】代码学习

文章目录 直接定义nn.Sequential(), 然后append(),最后直接net(),少写很多forward&#xff0c;适合直连式网络 直接定义nn.Sequential(), 然后append(),最后直接net(),少写很多forward&#xff0c;适合直连式网络 代码来源&#xff1a;https://github.com/zshhans/MSD-Mixer/b…

ros2启动gazebo方式

我安装的是官方建议的gz-harxxx版本。就用这个启动 ros2 launch ros_ign_gazebo ign_gazebo.launch.py 哎我鼓捣了2个小时的东西&#xff0c;就这么公布出来好像有点不甘心啊&#xff0c;此文章全国第一个发布&#xff0c;没有之一

SQL指南:掌握日期函数来查询和管理数据

文章目录 1. 引言2. 建立数据库表2.1 建表语句2.2 数据插入 查询案例3.1 查询当前日期的订单3.2 查询过去一周内的订单3.3 查询明天的日期3.4 查询今年的订单3.5 查询特定月份的订单 总结 1. 引言 在数据库管理中&#xff0c;处理日期和时间是一项基本但重要的任务。本指南将通…