前端实现3D魔方旋转特效

2023-10-31

代码自用自取,复制粘贴直接使用,喜欢的话可以查看博主其它文章,贡献一丢丢的浏览量,感激不尽。

先看一下效果
在这里插入图片描述

<!DOCTYPE html>
<html>
<head>
	<title>魔方</title>
	<meta charset="utf-8">
	<style type="text/css">
		*{
			margin: 0;
			padding: 0;
		}
		body{
		  width: 100%;
		  height: 100%;
		  background: radial-gradient(#fff, black); 
		}
		.container{
			width:300px;
			height:300px;
			margin:200px auto;
			perspective:20000px;
		}
		.box{
			width:300px;
			height:300px;
			border:1px solid transparent;
			box-sizing: border-box;
			position:relative;
			transform-style:preserve-3d;
			/*transform:rotateX(30deg) rotateY(30deg);*/
			animation: rotate 7s linear infinite;
		}
		@keyframes rotate{
			100%{
				transform:rotatex(360deg) rotatey(360deg) rotatez(360deg);
			}
		}

		.box-page{
			width: 300px;
			height: 300px;
			position:absolute;
			box-sizing: border-box;
			transform-style:preserve-3d;
		}


		.top{
			transform: translateZ(150px);
		}
		.bottom{
			transform: translateZ(-150px) rotateX(180deg);
		}
		.right{
			transform: translateX(150px) rotateY(90deg);
		}
		.left{
			transform: translateX(-150px) rotateY(-90deg);
		}
		.after{
			transform: translateY(-150px) rotateX(90deg);
		}
		.before{
			transform: translateY(150px) rotateX(-90deg);
		}


		.box-page div:first-child,.box-page div:nth-child(3),.box-page div:nth-child(5),.box-page div:nth-child(7),.box-page div:nth-child(9){
			transform: rotateY(0deg);
		    animation: rotatey 7s linear infinite;
		}


		@keyframes rotatey{
			20%{
				transform: rotateY(0deg);
				background-size: 300px 300px;
			}
			40%{
				/*background-image: url("img/img.jpg");*/
				transform: rotateY(540deg);
				background-size: 100px 100px;
			}
			60%{
				/*background-image: url("img/img.jpg");*/
				transform: rotateY(540deg);
				background-size: 100px 100px;
			}
			80%{
				transform: rotateY(0deg);
				background-size:300px 300px;
			}
		}

		.box-page div:nth-child(2),.box-page div:nth-child(4),.box-page div:nth-child(6),.box-page div:nth-child(8){
			transform:rotateX(0deg);
		    animation: rotatex 10s linear infinite;
		}

		@keyframes rotatex{
			20%{
				transform: rotateX(0deg);
				background-size: 300px 300px;
			}
			40%{
				/*background-image: url("img/img.jpg");*/
				transform: rotateX(540deg);
				background-size: 100px 100px;
			}
			60%{
				/*background-image: url("img/img.jpg");*/
				transform: rotateX(540deg);
				background-size: 100px 100px;
			}
			80%{
				transform: rotateX(0deg);
				background-size: 300px 300px;
			}
		}
		
	</style>
</head>
<body>
<div class="container">
	<div class="box">
		<div class="top box-page"></div>
		<div class="bottom box-page"></div>
		<div class="left box-page"></div>
		<div class="right box-page"></div>
		<div class="before box-page"></div>
		<div class="after box-page"></div>
	</div>
</div>
<script type="text/javascript">
	
	var arr = document.querySelectorAll(".box>div");
	for(var n = 0;n<arr.length;n++){
		for(var i=0;i<3;i++){
			for(var j=0;j<3;j++){
				var divs = document.createElement("div");
				divs.style.cssText = "width:100px;height:100px;border: 1px solid #fff;position:absolute;box-sizing:border-box;background-image:url(img/a"+n+".jpg);background-size: 300px 300px;";
				arr[n].appendChild(divs);

				// 改变每一个div的位置
				divs.style.left = 100*j+"px";
				divs.style.top = 100*i+"px";

				// 改变背景图相应的位置
				divs.style.backgroundPositionX = -j*100+"px";
				divs.style.backgroundPositionY = -i*100+"px";		
			}
		}
	}

</script>
</body>
</html>

这是所有源码,魔方六个面的图片是自己定义的,与.html文件一起放一个名为img的文件夹即可,六张图片的命名为a0-a5的jpg格式,这是我目前设定的,这些都可以自己改动。
在这里插入图片描述
有什么问题可以联系QQ:505417246

关注下面微信公众号,可以领取微信小程序、Vue、TypeScript、前端、uni-app、全栈、Nodejs、Python等实战学习资料
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端实现3D魔方旋转特效 的相关文章

  • 是否可以使“HTML 到语音”与“文本到语音”相同?

    我有一个奇怪的要求 在我现有的应用程序中我有Text2Speech为此 我使用了AVSpeechSynthesizer 到语音文本 但现在要求发生了变化 现在我需要将 HTML 文件数据转换为文本 例如HTML2Speech 我们可以想到的
  • 如何解决此错误:属性 rel 的原始源值错误

    我正在尝试使用 w3c 验证我的网站 但出现错误 Bad value original source for attribute rel on element link The string original source is not a
  • 如何保留用户的输入打印?

    我正在尝试添加用户的评论 所以我只是尝试读取输入并将其发送以进行打印 但问题是 一旦我刷新页面或输入另一个输入 打印的输入就会消失 因此 即使刷新页面或重新输入新评论 我也希望始终保持所有用户的显示 代码 div div
  • 可以将position:absolute元素设为粘性吗?

    In CSS position sticky使元素能够显示position static行为 即 它采用文档流中的默认位置 直到到达某个滚动位置 然后采用position fixed行为 那么 这是否意味着我们不能使用position st
  • 每 2 行后使 html 表格的边框变厚

    我创建了一个包含一些内容的表 其中有 12 行和 2 列 我想显示边框 但每 4 行之后 我想将水平边框设置为比正常情况更粗 怎么做 请在这里帮忙 试试这个选择器 table tr nth of type 4n td border bott
  • 删除特定数据表上的所有边框

    我需要使用 PrimeFaces 隐藏一个数据表的所有边框 而不是全部 我尝试了很多事情 但没有人奏效 有谁知道该怎么做 我已将以下样式 单独 应用于ui datatable class border hidden important bo
  • 使用其innerHTML查找元素

    请看一下这个 DOM 树 div div span Home1 span div span Home2 span span Home3 span div 现在假设我有一个场景 我以某种方式获得了第一个跨度的innerHTMLHome1 是否
  • 理解 z-index:该元素如何出现在其父级同级元素的前面?

    为什么当我删除时红色 div 位于绿色 div 前面z index from wrapperRed 感觉像z index是沿着链条向上继承的 如果我改变z index将绿色 div 更改为 6 即使删除第一句中描述的行后 它仍保留在红色 d
  • save_and_open_page 已停止提供我的 CSS

    我的测试设置工作得很好 每当我打电话时 都能提供正确格式的 css 页面save and open page从测试中 然后 我设置了一些 javascript 测试 并对我的设置进行了一些更改 抱歉 我无法详细说明所有内容 我没有足够详细地
  • 使用 python 在一个 html 页面中显示分割数据框的 HTML 代码

    我是 html css 新手 所以对以 html 格式显示的数据有疑问 我有一个很长的列表 我想将其拆分并以 html 格式显示为两个单独的列 例如 而不是 Col1 Col2 1 a 2 a 3 a 4 a 5 b 6 b 7 b 8 b
  • html 电子邮件内的背景图像 css - Gmail 不支持

    我想向我的用户发送如下所示的带有背景图像 css 的 html 正文电子邮件 div style width 500px height 1000px background color black background image none
  • 浮动图像周围具有最小列宽的流动文本

    我想要一种方法来防止流动文本列变得太窄 例如 在一列 HTML 文本中 有一个图像浮动到左侧 正如预期的那样 文本沿着图像周围的列的右侧向下流动 但是 如果图像几乎与列一样宽 则文本最终会非常窄 在这种情况下 我希望文本简单地not流过图像
  • CSS 继承、别名和其他很酷的东西

    有一天 我随机浏览网页 发现了一些程序 可以让你编写 CSS 别名和其他很酷的东西 我现在不记得了 举个例子 我记得你可以这样做 myclass background color red greenfont 其中 greenfont 在其他
  • 合并 2 个大型 CSS 文件的有效方法

    我正在寻找一个可以合并 2 个大型 CSS 文件的工具 到目前为止我尝试过的所有方法 例如CSSMerge 都没有成功 其中一些只是随机删除属性 其他人则因 webkit 和 moz 等非标准属性而窒息 并给我错误 我还需要保留每条规则大小
  • 如何在模态打开时防止主体滚动

    我在用着W3schools 模态脚本 https www w3schools com howto tryit asp filename tryhow css modal我想添加一个功能 防止模型打开时整个主体滚动 我根据我的需要对原始脚本做
  • 具有 100% 高度行和 Internet Explorer 9 的表格

    我有以下示例 div style height 150px background color AAAAFF div
  • 使用 CSS 的响应式图像

    我发现调整图像大小以使其具有响应能力很棘手 我正在开发一个 php 应用程序来自动将网站转换为响应式版本 我有点被图像困住了 我已经成功地为网站上的每个图像添加了一个包装类 并且可以很好地调整图像的大小 我的问题在于自然小于窗口的图像 例如
  • 如何从浏览器向服务器发送“页面将关闭”消息?

    我想向每个 html 文档添加一个脚本 JavaScript 该脚本向服务器发送两条消息 页面确实打开了 页面将关闭 此消息包含页面打开的时间 打开消息应在文档加载时 或加载完成时 发送 这是简单的部分 The close message
  • Webpack 4:如何使用 LESS 获取 CSS 源映射?

    多年来我一直在尝试让 CSS 源映射在 webpack 中工作 但没有成功 我不确定链条中哪里出了问题 我希望有人能指出我正确的方向 这是发生的事情 行号是错误的 实际上文件名也是错误的 main less只是包含一堆 import也就是说
  • css3按钮背景颜色无限过渡

    有没有办法仅使用 css3 使按钮的背景颜色从灰色渐变为蓝色 然后又回到灰色 一个很好的例子是默认操作按钮是可可 我知道这可以在 javascript 中完成 但我宁愿只使用 css 来完成此操作 您好 我已经通过 CSS3 动画制作了按钮

随机推荐

  • navicat与mysql

    MySQL数据库用于存放数据 客户端navicat是为了方便操作数据库而设计的一种图形化软件 转自知乎如何安装MySQL数据库和navicat客户端 知乎 1 数据库如何安装 MySQL Begin Your Download 官网安装 安
  • MySQL基本知识

    什么是事务 事务是一个独立的工作单元 里面的操作要不全部成功 要不全部失败 事务有什么特性 原子性 操作要不全部成功 要不全部失败 隔离性 多个并发事务之间相互隔离 互不干扰 或者说一个事务的操作对于另外一个事务是不可见的 持久性 事务一旦
  • 密集预测/Dense Prediction

    Pixelwise dense prediction is the task of predicting a label for each pixel in the image 来自于卷积神经网络在图像语义分割 semantic image
  • haproxy应用

    不用手动编译安装 haproxy 1 7 3 tar gz yum install y rpm build rpmbuild help rpmbuild tb haproxy 1 7 3 tar gz cd root rpmbuild RP
  • NLP专栏|图解 BERT 预训练模型!

    关注后 星标 Datawhale 每日干货 每月组队学习 不错过 Datawhale干货 作者 张贤 哈尔滨工程大学 Datawhale原创作者 本文约7000字 NLP专栏文章 建议收藏阅读 审稿人 Jepson Datawhale成员
  • linux内核模块编程(二)----timer定时器

    先给自己打个广告 本人的微信公众号正式上线了 搜索 张笑生的地盘 主要关注嵌入式软件开发 足球等等 希望大家多多关注 有问题可以直接留言给我 一定尽心尽力回答大家的问题 一 why 一般地 在我们嵌入式软件开发中 使用定时器的目的是为了实现
  • C#中实现FIR带通滤波

    最近有一个需求 在C 中实现FIR滤波 网上查了些资料感觉FIR滤波使用的还算比较多 相关的原理也比较简单 参考下面在Python环境中实现FIR的博客 在C 的环境中实现了一遍 https blog csdn net moge19 art
  • LeetCode 44 二叉搜索树的最近公共祖先

    题目 给定一个二叉搜索树 找到该树中两个指定节点的最近公共祖先 百度百科中最近公共祖先的定义为 对于有根树 T 的两个结点 p q 最近公共祖先表示为一个结点 x 满足 x 是 p q 的祖先且 x 的深度尽可能大 一个节点也可以是它自己的
  • c++之A a和A *a=new A()

    new是在堆上分配内存 它需要用delete释放 否则会造成内存泄漏 A a 在程序执行完毕后 会自动释放内存 int main A a 定义了一个对象 A p new A 在堆上定义了一个对象 它的指针保存在p里 堆上定义的对象没有名字
  • 毕业论文数据清洗会遇到的问题及解决方法完整版

    数据清洗 实时更新中 未完待续 模型导入 import pandas as pd import os 用于改变路径很方便 os chdir r C Users Desktop 毕业论文 按照某一行或列合并2个DataFrame表 data
  • Linux学习笔记——文件权限的修改

    Linux chmod 英文全拼 change mode 命令是控制用户对文件的权限的命令 Linux Unix 的文件调用权限分为三级 文件所有者 Owner 用户组 Group 其它用户 Other Users 在学习文件权限修改之前先
  • 关于前端框架vue2升级为vue3的相关说明

    一些框架需要升级 当前 202306 Vue 的最新稳定版本是 v3 3 4 Vue 框架升级为最新的3 0版本 涉及的相关依赖变更有 前提条件 已安装 16 0 或更高版本的Node js 摘 必须的变更 核心库vue 2 gt 3 路由
  • 霸王ii显示服务器,[消息]一测服务器关闭

    新浪游戏 2006 06 01 15 48 为了迎接即将于6月2日到来的二次内测 进行服务器的维护与更新工作 霸王大陆 首次内测服务器 已在6月1日上午10点暂时关闭 首次内测正式结束 服务器关闭后 首次内测的角色等级经验 装备 社会关系等
  • 如何快速打好Java基础?

    二哥 我是一名大学生 专业是电力工程 但想自学 Java 如何快速打好基础呢 微信上 tison 向我提出了这个问题 我想我是有资格来回答的 从北京奥运会那年开始学 Java 到现在已经有 10 多个年头了 真的是从一名编程白痴一步步走到现
  • 爬虫入门——如何顺利安装scrapy(windows)

    首先我们要明白 scrapy是基于python实现的 现在我们要先安装python python的安装 打开官网 https www python org 点击downloads 这边我下载的是3 9 0版本 需要安装包可私信我 2 双击安
  • JavaScript 删除对象中的某一项

    delete let obj a 1 b 2 c 3 d 4 e 5 f 6 delete obj b console log obj 运行结果 Reflect deleteProperty JavaScript 中的静态方法 Reflec
  • 命令行光标移动技巧

    Ctrl 左右 单词之间跳转 ctrl a 光标移到行首 ctrl e 光标移到行尾 ctrl c 杀死当前进程 ctrl k 清除光标后至行尾的内容 ctrl u 清除光标前至行首间的所有内容 ctrl l 清屏 相当于clear ctr
  • VTM配置

    VTM配置 encoderApp decoder等添加cfg文件 更改Encoder Decoder等中属性 调试 命令参数 工作目录 修改第一步添加cfg文件中的I O配置 最后注意release和debug要保持一致 encoderAp
  • postman文件接口

    文件的上传和下载测试 先取得网址 文件的上传分为两种格式 一种是表单格式的 另一种是Ajax格式的 上传文件为post请求 下载文件是get请求 首先测试的是表单格式的 把key值设置为file 点击选择并上传文件 点击发送 显示返回发送成
  • 前端实现3D魔方旋转特效

    代码自用自取 复制粘贴直接使用 喜欢的话可以查看博主其它文章 贡献一丢丢的浏览量 感激不尽 先看一下效果