基于css3的3D立方体旋转特效 (先translate与先rotate的不同)

2024-03-01 02:32

本文主要是介绍基于css3的3D立方体旋转特效 (先translate与先rotate的不同),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这里写图片描述
3D变换基于几个比较重要的属性,perspective,translateZ,preserve-3d;
格式:
舞台(perspective)
容器(3D, preserve-3d)
内容

3D实现立方体盒子:
这里写图片描述

这里写图片描述

transform的4个属性,排序不同,带来的效果也不同。
先移动的代码:

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8" /><title>3d</title><style>*{padding: 0;margin: 0;}ul,li{list-style: none;}html{height: 100%;background: #ff0;}div{perspective: 1000px;}ul{width: 200px;height: 200px;margin: 100px auto;position: relative;transform-style: preserve-3d;font-size: 30px;line-height: 200px;text-align: center;color: #fff;transform: rotateX(30deg) rotateY(30deg);animation: rotate 18s infinite linear; }@keyframes rotate{from{transform: rotateX(0deg) rotateY(0deg);}to{transform: rotateX(360deg) rotateY(360deg);}}ul li{width: 100%;height: 100%;position: absolute;border: 1px solid #fff;background: #333;opacity: 0.6;}ul .front{transform: translateZ(100px);}ul .back{transform:translateZ(-100px)  rotateY(180deg);}ul .left{transform: translateX(-100px) rotateY(-90deg) ;}ul .right{transform:translateX(100px)  rotateY(90deg) ;}ul .top{transform: translateY(-100px) rotateX(90deg) ;}ul .bottom{transform: translateY(100px) rotateX(-90deg) ;}</style>
</head>
<body><div><ul><li class="front"></li><li class="back"></li><li class="left"></li><li class="right"></li><li class="top"></li><li class="bottom"></li></ul></div>
</body>
</html>

先旋转后移动,坐标轴改变方向。

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8" /><title>3d</title><style>*{padding: 0;margin: 0;}ul,li{list-style: none;}html{height: 100%;background: #ff0;}div{perspective: 1000px;}ul{width: 200px;height: 200px;margin: 100px auto;position: relative;transform-style: preserve-3d;font-size: 30px;line-height: 200px;text-align: center;color: #fff;transform: rotateX(30deg) rotateY(30deg);animation: rotate 18s infinite linear; }@keyframes rotate{from{transform: rotateX(0deg) rotateY(0deg);}to{transform: rotateX(360deg) rotateY(360deg);}}ul li{width: 100%;height: 100%;position: absolute;border: 1px solid #fff;background: #333;opacity: 0.6;}.front{transform: translateZ(100px);}.back{transform:rotateY(180deg) translateZ(100px);}.left{transform: rotateY(-90deg) translateZ(100px);}.right{transform:rotateY(90deg) translateZ(100px);}.top{transform: rotateX(90deg) translateZ(100px)  ;}.bottom{transform: rotateX(-90deg) translateZ(100px);}</style>
</head>
<body><div><ul><li class="front"></li><li class="back"></li><li class="left"></li><li class="right"></li><li class="top"></li><li class="bottom"></li></ul></div>
</body>
</html>

这篇关于基于css3的3D立方体旋转特效 (先translate与先rotate的不同)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/760916

相关文章

轻量级在线服装3D定制引擎Myway简介

我写的面向web元宇宙轻量级系列引擎中的另外一个,在线3D定制引擎Myway 3D。 用于在线商品定制,比如个性化服装的定制、日常用品(如杯子)、家装(被套)等物品的在线定制。 特性列表: 可更换衣服款式,按需定制更换模型可实时更改材质颜色可实时添加文本,并可实时修改大小、颜色和角度,支持自定义字体可实时添加艺术图标,并可实时修改大小、颜色和角度,支持翻转、各种对齐可更改衣服图案,按需求定制

计算绕原点旋转某角度后的点的坐标

问题: A点(x, y)按顺时针旋转 theta 角度后点的坐标为A1点(x1,y1)  ,求x1 y1坐标用(x,y)和 theta 来表示 方法一: 设 OA 向量和x轴的角度为 alpha , 那么顺时针转过 theta后 ,OA1 向量和x轴的角度为 (alpha - theta) 。 使用圆的参数方程来表示点坐标。A的坐标可以表示为: \[\left\{ {\begin{ar

vue, 左右布局宽,可拖动改变

1:建立一个draggableMixin.js  混入的方式使用 2:代码如下draggableMixin.js  export default {data() {return {leftWidth: 330,isDragging: false,startX: 0,startWidth: 0,};},methods: {startDragging(e) {this.isDragging = tr

vue项目集成CanvasEditor实现Word在线编辑器

CanvasEditor实现Word在线编辑器 官网文档:https://hufe.club/canvas-editor-docs/guide/schema.html 源码地址:https://github.com/Hufe921/canvas-editor 前提声明: 由于CanvasEditor目前不支持vue、react 等框架开箱即用版,所以需要我们去Git下载源码,拿到其中两个主

React+TS前台项目实战(十七)-- 全局常用组件Dropdown封装

文章目录 前言Dropdown组件1. 功能分析2. 代码+详细注释3. 使用方式4. 效果展示 总结 前言 今天这篇主要讲全局Dropdown组件封装,可根据UI设计师要求自定义修改。 Dropdown组件 1. 功能分析 (1)通过position属性,可以控制下拉选项的位置 (2)通过传入width属性, 可以自定义下拉选项的宽度 (3)通过传入classN

js+css二级导航

效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Con

基于Springboot + vue 的抗疫物质管理系统的设计与实现

目录 📚 前言 📑摘要 📑系统流程 📚 系统架构设计 📚 数据库设计 📚 系统功能的具体实现    💬 系统登录注册 系统登录 登录界面   用户添加  💬 抗疫列表展示模块     区域信息管理 添加物资详情 抗疫物资列表展示 抗疫物资申请 抗疫物资审核 ✒️ 源码实现 💖 源码获取 😁 联系方式 📚 前言 📑博客主页:

KLayout ------ 旋转物体90度并做平移

KLayout ------ 旋转创建的物体 正文 正文 前段时间,有个小伙伴留言问我,KLayout 中如何旋转自己创建的物体,这里特来说明一下。 import pyapoly = pya.DPolygon([pya.DPoint(0, 0), pya.DPoint(0, 5), pya

vue+el国际化-东抄西鉴组合拳

vue-i18n 国际化参考 https://blog.csdn.net/zuorishu/article/details/81708585 说得比较详细。 另外做点补充,比如这里cn下的可以以项目模块加公共模块来细分。 import zhLocale from 'element-ui/lib/locale/lang/zh-CN' //引入element语言包const cn = {mess

vue同页面多路由懒加载-及可能存在问题的解决方式

先上图,再解释 图一是多路由页面,图二是路由文件。从图一可以看出每个router-view对应的name都不一样。从图二可以看出层路由对应的组件加载方式要跟图一中的name相对应,并且图二的路由层在跟图一对应的页面中要加上components层,多一个s结尾,里面的的方法名就是图一路由的name值,里面还可以照样用懒加载的方式。 页面上其他的路由在路由文件中也跟图二是一样的写法。 附送可能存在