css translate/rotate 空间坐标轴
参考:https://www.cnblogs.com/zhangnan35/p/10709876.html
https://www.cnblogs.com/zyrblog/p/11142624.html
translate三维坐标图:

rotate判断:
正向轴对着眼睛,顺时针则旋转角度为正,逆时针则旋转角度为负。
或者用左手法则也行:伸出左手,大拇指指向正轴方向,四个手指的指向即是旋转正向,但务必记住是左手!
注:rotate后三维坐标轴也会跟着改变
例——正方体相册
效果:

html:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<link type="text/css" href="css/1.css" rel="stylesheet ">
<title>旋转立方体相册</title>
</head>
<body>
<div id="react">
<div class="out_front">
<img src="img/1.jpg" class="out_pic">
</div>
<div class="out_back">
<img src="img/2.jpg" class="out_pic">
</div>
<div class="out_left">
<img src="img/3.jpg" class="out_pic">
</div>
<div class="out_right">
<img src="img/4.jpg" class="out_pic">
</div>
<div class="out_top">
<img src="img/5.jpg" class="out_pic">
</div>
<div class="out_bottom">
<img src="img/1.jpg" class="out_pic">
</div>
<span class="in_front">
<img src="img/2.jpg" class="in_pic">
</span>
<span class="in_back">
<img src="img/3.jpg" class="in_pic">
</span>
<span class="in_left">
<img src="img/4.jpg" class="in_pic">
</span>
<span class="in_right">
<img src="img/5.jpg" class="in_pic">
</span>
<span class="in_top">
<img src="img/1.jpg" class="in_pic">
</span>
<span class="in_bottom">
<img src="img/2.jpg" class="in_pic">
</span>
</div>
</body>
</html>
1.css:
* {
padding: 0;
margin: 0;
}
body {
width: 100%;
height: 100%;
perspective: 500px;//元素被查看位置的视图,值越大,代表“眼睛离观察物越远”,值越小,代表“眼睛越靠近观察物”
background: linear-gradient(darkred 0%, black 100%);
}
#react {
width: 200px;
height: 200px;
margin: 200px auto;
transform-style: preserve-3d;//支持3d图像显示
animation: rotate 20s infinite;
animation-timing-function: linear;
}
#react div {
position: absolute;
transition: all .4s;
}
div .out_pic {
width: 200px;
height: 200px;
opacity: 0.9;
}
div .in_pic {
width: 100px;
height: 100px;
}
#react span {
display: block;
position: absolute;
width: 100px;
height: 100px;
top: 50px;
left: 50px;
}
@keyframes rotate {
from {
transform: rotateX(0deg) rotateY(0deg);
}
to {
transform: rotateX(360deg) rotateY(360deg);
}
}
.out_front {
transform: translateZ(100px);
}
.out_back {
transform: translateZ(-100px);
}
.out_left {
transform: rotateY(90deg) translateZ(100px);
}
.out_right {
transform: rotateY(-90deg) translateZ(100px);
}
.out_top {
transform: rotateX(90deg) translateZ(100px);
}
.out_bottom {
transform: rotateX(-90deg) translateZ(100px);
}
.in_front {
transform: translateZ(50px);
}
.in_back {
transform: translateZ(-50px);
}
.in_left {
transform: rotateY(90deg) translateZ(50px);
}
.in_right {
transform: rotateY(-90deg) translateZ(50px);
}
.in_top {
transform: rotateX(90deg) translateZ(50px);
}
.in_bottom {
transform: rotateX(-90deg) translateZ(50px);
}
/*外面的图片散开*/
#react:hover .out_front {
transform: translateZ(200px);
}
#react:hover .out_back {
transform: translateZ(-200px);
}
#react:hover .out_left {
transform: rotateY(90deg) translateZ(200px);
}
#react:hover .out_right {
transform: rotateY(-90deg) translateZ(200px);
}
#react:hover .out_top {
transform: rotateX(90deg) translateZ(200px);
}
#react:hover .out_bottom {
transform: rotateX(-90deg) translateZ(200px);
}
/*里面的图片散开*/
#react:hover .in_front {
transform: translateZ(100px);
}
#react:hover .in_back {
transform: translateZ(-100px);
}
#react:hover .in_left {
transform: rotateY(90deg) translateZ(100px);
}
#react:hover .in_right {
transform: rotateY(-90deg) translateZ(100px);
}
#react:hover .in_top {
transform: rotateX(90deg) translateZ(100px);
}
#react:hover .in_bottom {
transform: rotateX(-90deg) translateZ(100px);
}
css translate/rotate 空间坐标轴的更多相关文章
- HTML5 Canvas ( 图形变换, 升级版的星空 ) translate, rotate, scale
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- iOS 2D绘图详解(Quartz 2D)之Transform(CTM,Translate,Rotate,Scale)
前言:Quartz默认采用设备无关的user space来进行绘图,当context(画板)建立之后,默认的坐标系原点以及方向也就确认了,可以通过CTM(current transformation ...
- CSS学习笔记2-2d变换和过渡属性
前言:今天又是一个周末,心情不错,趁着闲暇之余,把剩下来的CSS3学习的内容全部整理出来,练习用的源码也稍微整理了一下. 2D转换 transform:translate||rotate||scale ...
- css属性的选择对动画性能的影响
现在手机的占比越来越高,各种酷炫页面层出不穷,这些特效都离不开css动画.说到css动画,主流的情况也就无非这两大类:位移和形变.而我们在写一个动画特效的过程中,如何去提升它的性能呢?当然首先我们需要 ...
- canvas/CSS实现仪表盘效果
手机上看比较虚 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t ...
- CSS 实现加载动画之一-菊花旋转
最近打算整理几个动画样式,最常见的就是我们用到的加载动画.加载动画的效果处理的好,会给页面带来画龙点睛的作用,而使用户愿意去等待.而页面中最常用的做法是把动画做成gif格式,当做背景图或是img标签来 ...
- css知识总结
---# 学习目标:> 1. 学会使用CSS选择器> 2. 熟记CSS样式和外观属性> 3. 熟练掌握CSS各种选择器> 4. 熟练掌握CSS各种选择器> 5. 熟练掌握 ...
- 前端性能优化(css动画篇)
正巧看到在送书,于是乎找了找自己博客上记录过的一些东西来及其无耻的蹭书了~~~ 小广告:更多内容可以看我的博客 最近拜读了一下html5rocks上几位大神写的一篇关于CSS3动画性能优化的文章,学到 ...
- canvas/CSS仪表盘效果
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
随机推荐
- Python测试代理ip是否有效
方式一: 通过icanhazip.com返回的ip地址进行检测 import requests '''代理IP地址(高匿)''' proxy = { 'http': 'http://117.85.10 ...
- vCenter 6.0 vsca 安装遇到的一些小问题
在安装vCenter 6.0 vsca的时候,安装插件到第二个的时候,会报出一个windows installer的错误.需要联系软件管理员或者技术支持的一个error. 经过多次的测试,我终于找到了 ...
- iftop简单使用
在linux下想查看当前与主机通信的IP有哪些?流量多少?怎么办?使用iftop吧,小巧实用的小工具.在排查问题的时候能起到大作用. centos安装 yum install iftop 界面如下: ...
- php 学习一 变量的定义
//php有如下几种数据类型 // false true boolean类型 //integer int 整数 //float 浮点数就是小数 //string 字符串 //string null 空 ...
- hdu 2774 后缀数组
题目大意: 求两个字符串的最长公共子串 基本思路: 首先自然而然的想到应当把两个串拼接起来,为了便于处理,所以在串的中间加个大量(就是一个比其他值大的值),最后别忘了拼接上下标为n的时候是0,调用da ...
- 通过lua进行nginx的权限控制
nginx_lua的安装 nginx使用luajit进行编译安装 使用openresty进行yum安装 openresty中将lua和nginx进行封装,详情可查看openresty官网 openre ...
- php自动生成不重复的id
PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳.在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据.即使使用了第二个参数,也会重复,最好的方案是结 ...
- leetcode-12双周赛-1244-力扣排行榜
题目描述: class Leaderboard: def __init__(self): self.map = collections.Counter() def addScore(self, pla ...
- Linux常用查看日志命令tail
常用查看日志操作语句: tail web.2016-06-06.log -n 300 -f 查看底部即最新300条日志记录,并实时刷新 grep 'ni ...
- 树的性质——cf1244D
特别简单,只有链的形式才符合要求,那么枚举前两个点的颜色搞一下就可以 #include <bits/stdc++.h> using namespace std; ][],pos[],ok= ...