渐变-空间转换-3d立体模型

245 阅读6分钟

做案例思路

案例;缩放,阴影,平移

  1. 看清除案例静态结构 然后书写标签
  2. 样式来实现案例的功能

思路

  1. 真实的开发情况(我们最开始分析的思路 不一定全对 会出现反复了解案例和修改代码的情况 正确 不可避免)
  2. 鼠标移入后展示它的效果
  • 图片放大;div从下往上移动;里面的图片scale缩放
  • 盒子的颜色变深,不精确的描述,需要多花上面的需求多时间和经历去研究需求
  1. 除了文字之外,其他都变深了
  2. 深下 到 上的渐变
  • 分拆 如何实现;用什么代码来实现!

背景透明色拓展

  • 当一个盒子没有设置背景颜色,他的背景色就等于父元素的背景颜色
  • background-color:transparent;默认的代码,transparent设置div的背景颜色等于父元素的背景颜色

transparent

总结

分析

  1. 看完早上的第一节课,华为案例之后,你昨天晚上靠你的能力写到11点也没有写出来-- 你认为你的问题没学好
  2. 本身案例 知识点 也不少
  3. 但是案例自己摸索写到11点,他不是浪费你的时间,是很有意义的! 鼓励!
  4. 你已经在学 自学上面了

思路

  1. 写综合案例的时候:
  • 要求我们很清除知道每一个需求
  • 需要简单的看一眼就懂
  • 麻烦 自己思考 请求技术经理 产品经理+ui设计师 沟通来确定需求和请求帮助!!
  • 要求我们很清除知道每一个技术点

注意

  1. 请求别人的帮助的时候 别人会给点一些解决方案
  2. 有些方案是我们已经掌握的 思想
  3. 有些方案是我们没有学过 就需要去学习

最后

完成一个项目能使得你

  1. 沟通能力得到加强
  2. 项目开发的流程得到加强
  3. 技术能力得到加强
  4. 业务-需求能力得到加强

优化

1

  1. 特性 建议优先使用 平面变换

疑问1

  • 那老师你既然能用bottom实现这个效果,为啥还要用translate来写呢,这不是多了一行代码了嘛
  1. translate相比较于bottom 带来的性能优化高的多的多
  2. 因为translate css3提出的新技术 浏览器看到translate特效的时候,浏览器内部 专门开启一个做特效的任务-工作流程做优化
  3. 所以不在乎多一行
  4. 而且浏览器是一个大佬,1s中执行10万行代码,所以不在乎多那么1行十行的

工作问题

  1. 做产品 给客户去用
  2. 客户只关心产品好不好用 会去关心 你这个小产品 开发了多少实际
  • 开发者来说会有这么一个问题

做事态度

  1. 写代码的时候会考虑,开发的爽不爽(看问题的角度)
  2. 功能是不是更加的优秀(心态问题)

补充知识;渐变-过度

演示结论:

  1. 渐变是没有过度效果的!!!
  2. 背景图片渐变效果还不是很完善!!!工作中要慎用(浏览器的支持还不够好)

另外补充

过度属性添加的时候要注意,添加的要求是:需要展示效果的标签,才添加过渡效果,并不是所谓的父元素,区分开来,要注意!!!

不管,就像实现 鼠标移入 图标片换的渐变过程

  1. 只能换另外的思路来实现这个功能!!
  2. div里面包装两个图片标签
  3. 先让一个图片隐藏,一个图片显示
  4. div hover 再让另外一个图片隐藏 另外一个图片显示
  5. 定位加透明度来实现 透明度有过度
  • display:none 没有过度;
  • none black 过度不了

谷歌调试微调技巧

图片解析

空间转换

也有三种状态

  • 使用transform属性实现元素在空间内的位移,旋转,缩放等效果

空间

  • 是从坐标轴角度定义的,x,y和z三条坐标轴构成了一个立体空间,z轴位置与视线方向相同。,空间转换页交3D转换。
  • 默认情况下,看不到元素在Z轴上的变化

透视

目标

  • 使用perspective属性实现透视效果
  • 思考,生活中,同一个物体,观察距离不同,视觉上有什么区别?
  • 答:近大远小,近清除,远模糊
  • 思考,默认情况下,为什么无法观察到z轴位移效果?
  • 答:z轴是视线的方向,移动效果应该是距离的远或近,电脑屏幕是平面,默认无法观察远近效果

属性(添加给父级)视距

  • perspective:值
  • 透视距离也被称为视距,所谓的视距就是人的眼睛到屏幕的距离。
  • 当我们想要看见元素,在z轴上的变化的时候,需要给被观察的物体添加 视距,一般是1000px

空间旋转:

目标

语法:transform:rotateZ(值),使用rotate实现元素空间旋转效果。

左手法则:

判断旋转方向,左手握住旋转轴,拇指指向正值方向,手指弯曲方向为旋转正值方向

立体呈现:

目标

使用transform-style:preserve-3d呈现立体图

  • 可以设置一个标签 是普通的平面,图形,还是立体空间的容器transform-style
  • preserve-3d///flat 默认真
  • 当我们需要做一个立体图形的时候,需要给容器,设置一个开启立体空间的属性。

小总结

  • 空间中的物体,旋转的时候,不一定只限制于x,y,z轴做旋转,任意的方向旋转。
  • 沿着任意的方向做方向
  • transform:rotate3d(x,y,z,角度)
  • 矢量 两个点,可以确定方向还要长度!

做了解

做立方体思路

  1. 静态结构
  2. 定一个父盒子 box 包装这六个小 平面(立方体有六个面)
  3. 写6个面
  4. 先使用定位,来重叠在一起,(方便后面一个一个的调整他们的位置 构造立方体)

2:

  • 使用空间变换来实现 立方体

  • 在父元素添加transform:rotated3d(0,0,0,角度(数值一定要带单位deg))

3:

  • 提前检查一下,看效果