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. Java的二分搜索树

    定义 二分搜索树是二叉树(不包含重复元素). 二分搜索树的每个节点的值,大于左子树的所有节点的值,小于其右子树的所有节点的值. 每一棵子树也是二分搜索树. 二叉树搜索树必须要有比较,继承Compara ...

  2. Docker 搜索镜像

    文章首发个人网站: https://www.exception.site/docker/docker-search-image 本文中,您将学习 Docker 如何搜索镜像? 一.search 命令 ...

  3. ansible离线安装

    目录 1. ansible离线安装 2. ansible配置文件 3. ansible常用的命令: 1. ansible离线安装 最近要在内网部署一台ansible服务器,只能手动离线安装ansibl ...

  4. Vue基于vue-quill-editor富文本编辑器使用心得

    vue-quill-editor的guthub地址,现在市面上有很多的富文本编辑器,我个人还是非常推荐Vue自己家的vue-quill-deitor,虽然说只支持IE10+,但这种问题,帅给别人吧! ...

  5. Litepal【开源数据库ORM框架】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 好用的数据库框架. 效果图 代码分析 本篇主要是整理Litepal的引入和增删改查的简单操作,具体使用请阅读参考资料. 使用步骤 一 ...

  6. AndroidManifest设置android:allowBackup="false"报错

    概述 设置android:allowBackup="false"的必要性 Android API Level 8及其以上Android系统提供了为应用程序数据的备份和恢复功能,此功 ...

  7. Node.js 命令行工具的编写

    日常开发中,编写 Node.js 命令行工具来完成一些小任务是很常见的操作.其编写也不难,和日常编写 Node.js 代码并无二致. package.json 中的 bin 字段 一个 npm 模块, ...

  8. Java多线程打辅助的三个小伙子

    前言 之前学多线程的时候没有学习线程的同步工具类(辅助类).ps:当时觉得暂时用不上,认为是挺高深的知识点就没去管了.. 在前几天,朋友发了一篇比较好的Semaphore文章过来,然后在浏览博客的时候 ...

  9. DSAPI WIN7风格

    在Winform项目中,有时需要将UI变成适应Vista/Windows7/8/10的风格,通过"选用"以下代码来使你的UI支持系统主题渲染. 注:该功能不支持XP,建议使用DS控 ...

  10. Microsoft.Office.Interop.Excel 报错

    Microsoft.Office.Interop.Excel 报错 引用dll 在以下目录 C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop. ...