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);
}

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux分辨率添加

手动添加分辨率 注&#xff1a;添加分辨率需要显卡驱动支持&#xff0c;若显卡驱动有问题&#xff0c;则不能添加 可通过 xrandr 结果判断 # xrandr 若图中第二行” eDP“ 显示为 ” default “ &#xff0c;则显卡驱动加载失败&#xff0c;不能添加分辨率 1. 添加分辨率 # …

hiveserver负载均衡配置

一.安装nginx 参数我的另一篇文章&#xff1a;https://mp.csdn.net/mp_blog/creation/editor/135152478 二.配置nginx服务参数 worker_processes 1; events { worker_connections 1024; } stream { upstream hiveserver2 { # least_conn; # 使用最少连接路由…

助力智能人群检测计数,基于DETR(DEtectionTRansformer)开发构建通用场景下人群检测计数识别系统

在一些人流量比较大的场合&#xff0c;或者是一些特殊时刻、时段、节假日等特殊时期下&#xff0c;密切关注当前系统所承载的人流量是十分必要的&#xff0c;对于超出系统负荷容量的情况做到及时预警对于管理团队来说是保障人员安全的重要手段&#xff0c;本文的主要目的是想要…

【uniapp小程序-生成二维码+多个图片文字合并一张图】

<!-- 二维码 --><canvas id"qrcode" canvas-id"qrcode" width"120" ></canvas><!-- 生成带小程序码的分享图片 --><canvas canvas-id"shareCanvas" class"share-canvas"></canvas>#qrc…

Unity网络同步方案帧同步和状态同步

网络同步方案 介绍开始我们使用的状态同步&#xff08;实时状态同步&#xff09;后来采用的帧同步 状态同步优点缺点 帧同步顺序执行追帧重连优点缺点 总结 这两年做的都是帧同步和状态同步的项目&#xff0c;正好最近有时间总结一下什么是帧同步和状态同步&#xff0c;之前在做…

内核地址消毒剂(KASAN)

概述 Kernel Address SANitizer(KASAN)是一种动态内存安全错误检测工具,主要功能是 检查内存越界访问和使用已释放内存的问题。 KASAN有三种模式: 通用KASAN 基于软件标签的KASAN 基于硬件标签的KASAN 用CONFIG_KASAN_GENERIC启用的通用KASAN,是用于调试的模式,类似于用户…

SolidKits.BOMs工具—BOM及焊件切割清单输出

SolidKits.BOMs工具—BOM及焊件切割清单输出包含自动出BOM&#xff0c;自定义模板&#xff0c;焊件切割清单的输出&#xff0c;虚拟件的输出等功能&#xff0c;使用该功能&#xff0c;无需打开SOLIDWORKS软件&#xff0c;可大大提高工作效率。为回馈新老客户&#xff0c;此工具…

Ubuntu 常用命令之 exit 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 exit命令在Ubuntu系统下用于结束一个终端会话。它可以用于退出当前的shell&#xff0c;结束当前的脚本执行&#xff0c;或者结束一个ssh会话。 exit命令的参数是一个可选的整数&#xff0c;用于指定退出状态。如果没有指定&#…

基于ip地址通过openssl生成自签名证书

最近在配置geo的时候&#xff0c;客户说自己使用的是自签证书&#xff0c;然后是通过ip地址和端口的方式访问gitlab&#xff0c;比较好奇这块&#xff0c;因此对证书的生成和使用做了一些整理&#xff0c;对此网上关于这部分资料也很多&#xff0c;不过作为记录&#xff0c;也算…

美国的目的暴露了,夺下6台EUV光刻机推进2纳米,反超台积电

日前消息指光刻机巨头ASML预计明年量产10台第二代EUV光刻机&#xff0c;其中6台已确定被美国芯片企业Intel夺下&#xff0c;剩下的两台将由三星和台积电竞争&#xff0c;如此一来拿到更多第二代EUV光刻机的美国可望率先量产2纳米&#xff0c;反超台积电。 一、第二代EUV光刻机的…

Pytorch项目,肺癌检测项目之二

diameter_dict{} with open(/xunlian/annotations.csv &#xff0c;‘r’) as f: for row in list(csv.reader(f)[1:]): series_uid row[0] annotationCenter_xyz tuple([float(x) for x in row[1:4]]) annotationDiameter_mm float(row[4]) diameter_dict.setdefault(seri…

Qt中字符串转换为JS的函数执行

简介 在 QML 中&#xff0c;将 JavaScript 字符串转换为函数通常涉及使用 Function 构造函数或 eval() 函数。但是&#xff0c;QML 的环境对 JavaScript 的支持有一定的限制&#xff0c;因此不是所有的 JavaScript 功能都可以在 QML 中直接使用。 以下介绍都是在Qt5.12.1…

Spring简介

一&#xff1a;Spring是什么 Spring是分层的Java SE/EE应用full-stack&#xff08;各层都有对应解决方案&#xff09;轻量级&#xff08;api较少&#xff0c;学习成本较低&#xff09;开源框架&#xff0c;以IOC&#xff08;Inverse Of Control:反转控制&#xff09;和AOP(Asp…

最新Unity DOTS Physics物理引擎碰撞事件处理

最近DOTS发布了正式的版本,同时基于DOTS的理念实现了一套高性能的物理引擎&#xff0c;今天我们给大家分享和介绍一下这个物理引擎的碰撞事件处理以及核心相关概念。 Unity.Physics物理引擎的主要流程与Pipeline Unity.Physics物理引擎做仿真迭代计算的时候主要通过以下步骤来…

基于SpringBoot简洁优雅的个人博客系统

源代码下载地址&#xff1a; 点击这里下载 项目备注 1、该资源内项目代码都经过测试运行成功&#xff0c;功能ok的情况下才上传的&#xff0c;请放心下载使用&#xff01; 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或…

java八股jvm

JVM虚拟机篇-01-JVM介绍、运行流程_哔哩哔哩_bilibili 1.PC程序计数器 2.堆 3.虚拟机栈 4.方法区/永久代/元空间 5.直接内存 JVM虚拟机篇-06-JVM组成-你听过直接内存吗_哔哩哔哩_bilibili 6.双亲委派 从下往上找&#xff0c;有同名类优先使用上级加载器的&#xff0c;不用自…

【SpringBoot篇】基于Redis实现生成全局唯一ID的方法

文章目录 &#x1f354;生成全局唯一ID&#x1f339;为什么要生成全局唯一id&#x1f33a;生成全局id的方法✨代码实现 &#x1f354;生成全局唯一ID 是一种在分布式系统下用来生成全局唯一id的工具 在项目中生成全局唯一ID有很多好处&#xff0c;其中包括&#xff1a; 数据…

***linux 配置服务开机自启动

目录 一、如何让一个服务或脚本开机自启动&#xff1f; 1. 三种解决方案 2. systemd 和 chkconfig 二、chkconfig 1. chkconfig 管理服务脚本要求 2. chkconfig命令 三、Linux 运行级别 四、参考 linux 配置服务开机自启动&#xff08;systemd 和 chkconfig --add 设置…

sql-labs服务器结构

双层服务器结构 一个是tomcat的jsp服务器&#xff0c;一个是apache的php服务器&#xff0c;提供服务的是php服务器&#xff0c;只是tomcat向php服务器请求数据&#xff0c;php服务器返回数据给tomcat。 此处的29-32关都是这个结构&#xff0c;不是用docker拉取的镜像要搭建一下…

【Python】异常、模块与包

一、异常的概念 二、异常的捕获方法 三、异常的传递 四、Python模块 五、Python包 六、安装第三方Python包 一、异常的概念 什么是异常&#xff1a; 异常就是程序运行的过程中出现了错误bug是什么意思&#xff1a; bug就是指异常的意思&#xff0c;因为历史因为小虫子导致计算…