1.transform浏览器支持情况

也就是说目前不考虑老浏览器的话是不用加前缀的,感谢菜鸟教程:https://www.runoob.com/cssref/css3-pr-transform.html

transform默认值none;就是不转换,不继承,js中对其更改示例:object.style.transform="rotate(7deg)"

2.transform能干啥?

transform属性让元素进行2D或3D转换。可以将元素:旋转,缩放,移动,倾斜等。

3.transform怎么用?

transform: none|transform-functions;

none是默认的,就是不进行转换,好理解。transform-functions有哪些?如下表:

transform-functions的值 描述 示例
matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵。
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 定义 3D 转换,使用 16 个值的 4x4 矩阵。  
translate(x,y) 位移,将元素沿着x轴,y轴移动指定的距离。 transform:translate(100px,20px);
translate3d(x,y,z) 定义 3D 转换。  
translateX(x) 定义转换,只是用 X 轴的值。  
translateY(y) 定义转换,只是用 Y 轴的值。  
translateZ(z) 定义 3D 转换,只是用 Z 轴的值。  
scale(x,y) 缩放,将元素沿着x轴,y轴缩放一定的倍数  
scale3d(x,y,z) 定义 3D 缩放转换。  
scaleX(x) 通过设置 X 轴的值来定义缩放转换。  
scaleY(y) 通过设置 Y 轴的值来定义缩放转换。  
scaleZ(z) 通过设置 Z 轴的值来定义 3D 缩放转换。  
rotate(angle) 2D 旋转,在参数中规定角度(如:30deg)。 transform: rotate(360deg);
rotate3d(x,y,z,angle) 定义 3D 旋转。  
rotateX(angle) 定义沿着 X 轴的 3D 旋转。
rotateY(angle) 定义沿着 Y 轴的 3D 旋转。
rotateZ(angle) 定义沿着 Z 轴的 3D 旋转。
skew(x-angle,y-angle) 定义沿着 X 和 Y 轴的 2D 倾斜。

transform: rotate(30deg,60deg);

skewX(angle) 定义沿着 X 轴的 2D 倾斜。  
skewY(angle) 定义沿着 Y 轴的 2D 倾斜。  
perspective(n) 为 3D 转换元素定义透视视图。 测试

4.详细介绍下transform属性怎么用

页面有个几个div,宽200px,高100px,有的为其加上transform:rotate(30deg),效果如下(1\2\3\6是没有定义transform的):

注意,这是打开页面就会变形旋转好的,不会有动画!!!

使用transition过渡,才会产生动画。如下:

             .box5 {
/* 匀速 时间2s */
transition: linear 2s;
}
.box5:hover{
transform: rotate(360deg);
}

效果如下:

下面主要介绍transform属性值的效果,所以都配合transition来使用吧,方便看看前后变化的不同。

skewX(x) ,x是倾斜的度数,

         <style type="text/css">
.box1 {
width: 200px; height: 100px; background-color: #FF9900;
transition: 0.5s;
}
.box1:hover {
transform: skewX(-45deg);
}
</style>
...
<div style="border: #000000 1px solid">
<div class="box1">看看我的变化</div>
</div>
我是下一行内容

效果如下:

skewY(y),上面代码skewX改为skewY,效果如下

skew就是skewX和skeY的合集,上面第7行transform: skewX(-45deg);改为transform: skew(-45deg,45deg);效果如下

在这里,我不得不承认,还是在大脑总难以图像化:skew怎么去变形的过程。只有x轴上变动可以在脑中有个印象,只有Y轴变动,也可以有个动态的过程,都变动的话,嗯,脑子中形成不了那个印象。下面图对让变动和原图对比,看看怎么变的,也不深究了。。。

再来看看缩放函数transform:scale(2); 放大两倍(看到没,放大了是视觉上的,并不挤占兄弟和父级的空间)

             .box1 {
width: 200px; height: 100px; background-color: #FF9900;
transition: 0.5s;
}
.box1:hover {
/* scale括号里只能是正数或0 */
transform:scale(2);
}
     <body>
<div style="border: #000000 1px solid; margin-left: 200px; margin-top: 200px;">
<div class="box1">看看我的变化</div>
</div>
</body>

还有一个函数translate,它的意思就是位移!translateX只是它的分支。比如,向左移动50px之类的。

             .box1 {
width: 200px; height: 100px; background-color: #FF9900;
transition: 0.5s;
}
.box1:hover {
/* 沿x轴移动100px */
transform:translateX(100px);
}

5.变形基点transform-origin

上面说到的旋转、平移,缩放,其实都有个基点(可以理解为变形中未动的点,先用钉子将该点钉起来,然后完成变形,钉的点不同,变形后新位置当然也不一样!),默认的是正中心位置(重心),上图表明下基点是什么,如下:

基点在左上角和中心进行旋转的话,区别如下图

transform-origin要和transform一起用,毕竟如果没有transform变形,谈基点有什么意义呢?

/*
xyz代表了x轴,y轴,z轴,它们的取值如下
x轴取值可以为:left、center、right、length(某像素)、%(某百分比)
y轴取值可以为:top、center、bottom、length(某像素)、%(某百分比)
z轴取值可以为:length(某像素)
*/
transform-origin: x y z;
/*
默认:transform-origin:50% 50% 0
JS中:object.style.transformOrigin="20% 40%"
*/

a

CSS3旋转缩放移动倾斜等效果——transform的更多相关文章

  1. Android图片旋转,缩放,位移,倾斜,对称完整示例(一)——imageView.setImageMatrix(matrix)和Matrix

    MainActivity如下: import android.os.Bundle; import android.view.MotionEvent; import android.view.View; ...

  2. Android图片旋转,缩放,位移,倾斜,对称完整演示样例(一)——imageView.setImageMatrix(matrix)和Matrix

    MainActivity例如以下: import android.os.Bundle; import android.view.MotionEvent; import android.view.Vie ...

  3. 【CSS3动画】transform对文字及图片的旋转、缩放、倾斜和移动

    前言:之前我有写过CSS3的transform这一这特性,对于它的用法,还不是很透彻,今天补充补充,呵呵 你懂的,小司机准备开车了. a)再提一提transform的四个属性 ①旋转--->ro ...

  4. CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)

    CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)   在CSS3中,可以利用transform功能来实现文字或图像的旋转.缩放.倾 ...

  5. CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)(转载)

    在CSS3中,可以利用transform功能来实现文字或图像的旋转.缩放.倾斜.移动这四种类型的变形处理,本文将对此做详细介绍. 一.旋转 rotate 用法:transform: rotate(45 ...

  6. iOS transform解决连续多次旋转缩放,实现图片旋转缩放效果

    一.需求 实现imageView的缩放旋转效果,一般有两种方式: 1.底层加scrollview,利用scrollview的属性实现.(推荐这种,这是我比较后发现的,手势做缩放旋转会有点弊端) 2.利 ...

  7. CSS缩放函数, 旋转函数与倾斜函数

       1 :缩放        scale(x,y)函数让元素根据中心原点对对象进行缩放,大于1进行放大,小于1则缩小,如果为负值,则先进行翻转再进行缩放操作. 实例: HTML: <div c ...

  8. css3旋转倾斜3d小动画

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  9. 美妙的 CSS3 动画!一组梦幻般的按钮效果

    今天给大家带来的是五款梦幻般的动画按钮效果.下面是在线演示,把鼠标放在按钮上试试,有惊喜哦!CSS3 引入了众多供功能强大的新特性,让设计和开发人员能够轻松的创作出各种精美的界面效果. 温馨提示:为保 ...

随机推荐

  1. Entity Framework 异常: 'OFFSET' 附近有语法错误。\r\n在 FETCH 语句中选项 NEXT 的用法无效。

    在使用 EF 的时候,突然发现更新后在服务器中运行出错,异常信息主要包含以下信息: 'OFFSET' 附近有语法错误.\r\n在 FETCH 语句中选项 NEXT 的用法无效.\r\n关键字 'AS' ...

  2. [区块链] 加密算法——Hash算法(进阶)

    为了为保证存储于区块链中的信息的安全与完整,区块链中使用了包含密码哈希函数和椭圆曲线公钥密码技术在内的大量的现代密码学技术,同时,这些密码学技术也被用于设计基于工作量证明的共识算法并识别用户. 在前边 ...

  3. Spring Boot 中的静态资源到底要放在哪里?

    当我们使用 SpringMVC 框架时,静态资源会被拦截,需要添加额外配置,之前老有小伙伴在微信上问松哥Spring Boot 中的静态资源加载问题:"松哥,我的HTML页面好像没有样式?& ...

  4. SnackbarUtilDemo【Snackbar的封装类】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个工具类参考的是<没时间解释了,快使用Snackbar!——Android Snackbar花式使用指南>,代码几乎一 ...

  5. 学习ASP.NET Core Razor 编程系列十八——并发解决方案

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  6. C++11 (多线程)并发编程总结

    | 线程 std::thread 创建std::thread,一般会绑定一个底层的线程.若该thread还绑定好函数对象,则即刻将该函数运行于thread的底层线程. 线程相关的很多默认是move语义 ...

  7. group by搭配 order by解决排序问题

    问题 Ftravel_id Facct_no Froute_code Fmodify_time 41010020180725102219102000010452 1359c027b0a15266418 ...

  8. 如何用cmake编译

    本文由云+社区发表 作者:工程师小熊 CMake编译原理 CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多.CMake主要是编写CMakeLists.txt文件,然后用cmake ...

  9. JavaScript引擎浅析

    前言 该文章是为大家整理一个关于js的知识网络,重点是知识的罗列及之间的联系,所以实例可能会有所不足,导致可能没有对应知识的人看不懂,希望大家能够结合其他资料来学习这篇文章,并整理出自己的知识体系. ...

  10. 【JVM系列】一步步解析java执行内幕

    对于任何一门语言,要想达到精通的水平,研究它的执行原理(或者叫底层机制)不失为一种良好的方式.在本篇文章中,将重点研究java源代码的执行原理,即从程 序员编写JAVA源代码,到最终形成产品,在整个过 ...