html,坐标轴现实矩形旋转,css translate/rotate 空间坐标轴

translate三维坐标图:

43f3bcd07dc55ab4b51183324bff9020.png

rotate判断:

正向轴对着眼睛,顺时针则旋转角度为正,逆时针则旋转角度为负。

或者用左手法则也行:伸出左手,大拇指指向正轴方向,四个手指的指向即是旋转正向,但务必记住是左手!

注:rotate后三维坐标轴也会跟着改变

例——正方体相册

效果:

58180d596056857a4f5fe9cbe4d5865a.gif

html:

旋转立方体相册

1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

1.jpg

2.jpg

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

}

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实现仪表盘效果

手机上看比较虚

CSS 实现加载动画之一-菊花旋转

最近打算整理几个动画样式,最常见的就是我们用到的加载动画.加载动画的效果处理的好,会给页面带来画龙点睛的作用,而使用户愿意去等待.而页面中最常用的做法是把动画做成gif格式,当做背景图或是img标签来 ...

css知识总结

---# 学习目标:> 1. 学会使用CSS选择器> 2. 熟记CSS样式和外观属性> 3. 熟练掌握CSS各种选择器> 4. 熟练掌握CSS各种选择器> 5. 熟练掌握 ...

前端性能优化(css动画篇)

正巧看到在送书,于是乎找了找自己博客上记录过的一些东西来及其无耻的蹭书了~~~ 小广告:更多内容可以看我的博客 最近拜读了一下html5rocks上几位大神写的一篇关于CSS3动画性能优化的文章,学到 ...

canvas/CSS仪表盘效果

...

随机推荐

C#-WebForm-WebForm开发基础、如何给控件注册事件?——事件委托写法、http无状态性、三层结构

(小知识 - xml:可扩展的标记语言 html:超文本标记语言) 一.创建WebForm:新建→网站 此时文件夹中只有一个 config 文件,打开后 二.在项目下右键添加新项 在设计页面中打开 从 ...

C++基础练习题(一): 查找最短单词

/* 编程实现将字符串中最短的单词输出,在主函数中输入字符串,编写一个函数完成最短单词的查找 说明>*/ #include #inclu ...

编译过程中,termcap.h 文件找不到路径 licli.a终于生成

编译过程中,termcap.h      文件找不到路径   查看是linux  源码下找不到termcap.h文件   安装了所有关于*cap*的源码包也不起作用     今天终于解决了这个问题,搜 ...

PHP基础 CGI,FastCGI,PHP-CGI与PHP-FPM

CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上. CGI可以用任何一 ...

selinux理解1-selinux介绍

安全增强式Linux(SELinux, Security-Enhanced Linux)是一种强制访问控制(mandatory access control)的实现.它的作法是以最小权限原则(prin ...

vlc_input buffer管理 & 时钟同步(转)

vlc_input buffer管理 & 时钟同步 一.背景1.当播放网络视频流时(比如udp视频流),发送方(编码)和接收方(解码)是并行操作的,如果发送太慢(或因为网络原因出现延迟)的话, ...

CodeForces 146E - Lucky Subsequence DP+扩展欧几里德求逆元

题意: 一个数只含有4,7就是lucky数...现在有一串长度为n的数...问这列数有多少个长度为k子串..这些子串不含两个相同的lucky数... 子串的定义..是从这列数中选出的数..只要序号不同 ...

根据XPATH去查看修改xml文件节点的内容

首先给出xml文件解析的路径,然后去读取节点的内容. package com.inetpsa.eqc.threads; import java.util.List; import java.io.Fi ...

Codeforces#355

大小号刷题,大号,被查重,悲剧,最后小号过了3题 A题: 分析:大于h的+2,小于等于h的+1 #include #include #i ...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值