CSS转换VS转换

rin*_*hik 33 css3 css-transitions css-transforms

CSS转换和转换之间的主要区别是什么?

这两者都用于改变对象的当前形状/状态.(你可以用JS等做漂亮的动画..)

但是我仍然不清楚哪一个用于何处以及用于什么.

Con*_*ror 56

transition并且transform是独立的CSS属性,但可以提供transformtransition为"动画"的转换.


transition

CSS transition属性随着时间的推移侦听对指定属性(背景颜色,宽度,高度等)的更改.

transition 属性语法:

selector {
    transtion: [property-name] [duration] [timing-function] [delay]
}
Run Code Online (Sandbox Code Playgroud)

例如,以下样式将在悬停时在1秒的时间内将div的背景颜色更改为橙​​色.

div {
  width: 100px;
  height: 100px;
  background-color: yellow;
  transition: background-color 1s;
  /* timing function and delay not specified */
}
div:hover {
  background-color: orange;
}
Run Code Online (Sandbox Code Playgroud)
<div></div>
Run Code Online (Sandbox Code Playgroud)


transform

CSS transform属性在X,Y或Z轴上旋转/缩放/倾斜元素.它的行为与之无关transition.简单地说,在页面加载时,元素将显示为旋转/倾斜/缩放.

现在,如果您希望旋转/倾斜/缩放发生,例如当用户悬停在元素上时,您需要"转换""转换".

方法如下:由于transition属性的功能是监听其他css属性的更改,因此您实际上可以根据所需的触发器(例如,悬停操作)提供transform参数transition并对其进行"动画处理".

transform 属性语法

select {
    transform: [rotate] [skew] [scale] [translate] [perspective]
}
Run Code Online (Sandbox Code Playgroud)

例如,以下样式将在悬停时在1秒的时间内旋转div.

div {
  width: 100px;
  height: 100px;
  background-color: yellow;
  transition: transform 1s;
  /* timing function and delay not specified */
}
div:hover {
  transform: rotate(30deg);
}
Run Code Online (Sandbox Code Playgroud)
<div></div>
Run Code Online (Sandbox Code Playgroud)

  • 哦...我明白了,谢谢:) (2认同)
  • 完美的单行解释! (2认同)

Exp*_*lls 27

他们是完全不同的东西.

过渡:

CSS Transitions允许CSS值的属性更改在指定的持续时间内平滑发生.

变形:

CSS变换允许使用CSS样式化的元素在二维或三维空间中进行变换.

  • 它们是不同的,但它们都可以用来完成在2d平面上移动元素的相同事物.但是,两者之间存在性能差异:http://www.paulirish.com/2012/why-moving-elements-with-translate-is-better-than-posabs-topleft/ (4认同)