关于CSS3中常见transformation图形变化的用法

这篇文章主要介绍了css3的常见transformation图形变化用法小结,共整理了旋转、缩放、平移、倾斜以及矩阵的使用方法,需要的朋友可以参考下

1.rotate旋转
旋转图片,单位deg,为“度”的意思

-moz-transform: rotate(20deg); -webkit-transform: rotate(20deg); -o-transform: rotate(20deg); -ms-transform: rotate(20deg);

登录后复制

2.scale放大缩小
按比例放大缩小,如 “1.6” 为放大 1.6 倍,若 “-1.6” 则缩小 1.6 倍

-webkit-transform: scale(1.6); -moz-transform: scale(1.6); -o-transform: scale(1.6); -ms-transform: scale(1.6);

登录后复制

3.translate平移
translate 为指定对象的平移,具有两个参数,第一个为 x 轴方向平移,第二个为 y 轴方向平移。如果第二个参数未提供,则默认值为 0 。

例如,需要设置一个元素在鼠标悬停时进行 x 轴方向 30px 和 y 轴方向 20px 的平移,可以这样编写:

立即学习“前端免费学习笔记(深入)”;

#translate-demo:hover {       -webkit-transform: translate(30px, 20px);       -moz-transform: translate(30px, 20px);       -o-transform: translate(30px, 20px);       -ms-transform: translate(30px, 20px);       transform: translate(30px, 20px);   }

登录后复制

2016513115527553.png (300×190)

这里必须说明一点,最新版本的主流现代浏览器(Kayo 测试的是 Chrome 22.0.1229.94 , Firefox 17.0.1 , Safari 5.1.7 , Opera 12.12)除 webkit 内核的 Chorme 和 Safari 外都不需要通过私有属性才能支持 transform 了,但由于早期的现代浏览器中 transform 属性都需要通过各自的私有属性支持,因此为了尽量兼容早期版本的浏览器,在实际项目中使用 transform 时最好使用各自的私有属性,同时为了向后兼容,需要加上没有私有属性的调用。

4.skew倾斜
skew 指定元素斜切扭曲,即元素围绕 x 轴和 y 轴进行倾斜,具有两个参数,第一个对应 x 轴方向的倾斜角度,第二个对应 y 轴方向倾斜角度。如果第二个参数未提供,则默认值为 0 。skew 与 scale 有点相似,但 scale 只旋转元素,不会对元素形状作出改变,而 skew 则会使到元素的形状发生改变。

例如,需要设置一个元素在鼠标悬停时进行 x 轴方向 30 度和 y 轴方向 30 度的斜切扭曲,可以这样编写:

#skew-demo:hover {       -webkit-transform: skew(30deg, 30deg);       -moz-transform: skew(30deg, 30deg);       -o-transform: skew(30deg, 30deg);       -ms-transform: skew(30deg, 30deg);       transform: skew(30deg, 30deg);   }

登录后复制

2016513115555206.png (300×190)

值得注意的是,由于 translate、skew 以及上文提到的 scale 都是以 x、y 轴相关的值作为参数,因此为了方便起见,W3C 还提供了 translateX 和 translateY 、skewX 和 skewY 以及 scaleX 和 scaleY 方法,分别用于独立设置 x 轴和 y 轴方向上的效果。

5.matrix矩阵
matrix 即矩阵,这里具体使用的是一个 3*3 矩阵。
用矩阵表示属性值?
是的,除了 transform 外,CSS3 中另外还有一些属性以 matrix 作为属性值,实际上,matrix 是 transform 中最基本而又最强大的值,上面的 translate 和 skew 以及之前介绍过的 rotate 和 scale 在底层都是通过 matrix 实现的,因此实际上所有的 transform 值都可以通过一个 3*3 矩阵表示。
我们知道,transform 是在 x、y 坐标系上的 2D 变换,因此实际上变换就是元素上每一个点通过一个变换等式进行变化,再产生新的坐标值的过程。因此我们设置旧的 x、y 坐标值分别为 XprevCoordSys 和 YprevCoordSys ,新的 x、y 坐标值分别为 XnewCoordSys 和 YnewCoordSys ,由于变换在 2D 中进行,因此 z 坐标值设为 1 即可。这时再另设 matrix 为如下的一个矩阵,
2016513115613227.png (104×83)

则旧的坐标值、新的坐标值与 matrix 中存在如下关系:
2016513115630835.png (408×83)

即新旧值之间可以通过矩阵连成等式,因此开发者只需要设定好 matrix 的值,就可以写出自定义的变换了。接下来需要注意,虽然 matrix 是一个 3*3 矩阵,在实际使用时只需填写6个参数(另外3个与 x、y 轴无关),并且调用时需要用如下的顺序 [a b c d e f]
例如编写如下语句:

#matrix-demo:hover {       -webkit-transform: matrix(1, 1, 0, 1, 0, 0);       -moz-transform: matrix(1, 1, 0, 1, 0, 0);       -o-transform: matrix(1, 1, 0, 1, 0, 0);       -ms-transform: matrix(1, 1, 0, 1, 0, 0);       transform: matrix(1, 1, 0, 1, 0, 0);   }

登录后复制

这样在鼠标悬停时元素会在 y 轴方向上拉伸(即相当于 skewY(45deg) 的效果)。
另外如果同时使用两个或以上的 transform 方法,可以把它们合并书写。

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

 如何使用CSS3中的calc()属性来表达尺寸

关于CSS3的animation实现逐帧动画效果

以上就是关于CSS3中常见transformation图形变化的用法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2896181.html

(0)
上一篇 2025年3月10日 23:09:34
下一篇 2025年3月7日 00:13:42

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 使用CSS3实现扇形动画菜单

    这篇文章主要给大家介绍了利用纯css3实现扇形动画菜单(简化版)实例源码,文中给出了完整的示例源码,实现后的效果非常动感漂亮时尚,需要的朋友可以参考借鉴,下面来一起看看吧。 之前的一篇文章介绍这种效果的实现,但实现代码太过繁琐,所以在这里分…

    2025年3月10日
    200
  • 关于CSS3中currentColor关键字的使用方法

    这篇文章主要介绍了CSS3中currentColor关键字的妙用,合理地使用currentColor往往会让CSS代码更加简洁,同时也能与SVG图标很好地结合使用,需要的朋友可以参考下 初识 它是何物?具有怎样的功效?它从哪里来?带着这些疑…

    2025年3月10日 编程技术
    200
  • 关于CSS3定位和浮动的解析

    这篇文章主要为大家详细介绍了css3定位和浮动的概念,以及实例代码讲解css3定位和浮动的使用方法,感兴趣的小伙伴们可以参考一下 本文为大家分享CSS3定位和浮动的基础概念,与使用方法,供大家参考,具体内容如下 一、定位 1、 css定位:…

    编程技术 2025年3月10日
    200
  • 如何使用CSS3中appearance属性改变元素的外观

    这篇文章主要介绍了关于如何使用css3中appearance属性改变元素的外观,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 大家都知道每个浏览器对HTML元素渲染都不一样,比如说button,在chrome和ff中,渲染出…

    2025年3月10日
    200
  • 关于CSS3的@font face规则的解析

    这篇文章主要介绍了真正了解css3背景下的@font face规则,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 很多人只要一提到 @font face 规则,心中就会不由自主“哦~~”的一声:“这个我知道,可以用来生成自定义字符小图标…

    2025年3月10日 编程技术
    200
  • 如何使用CSS3制作彩色进度条样式

    这篇文章主要介绍了关于如何使用css3制作彩色进度条样式,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 用CSS3的border-radius、box-shadow、transition、-moz-linear-gradie…

    2025年3月10日
    200
  • CSS3的animation实现简易幻灯片轮播特效

    这篇文章主要为大家详细介绍了css3 animation实现简易幻灯片轮播特效,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 CSS3有个别特性,可以触发硬件GPU来加速渲染,而不是调用默认浏览器引擎渲染; 但是很多属性,默认都是不开启…

    2025年3月10日
    200
  • 如何使用CSS3实现千变万化的文字阴影text-shadow的效果

    这篇文章主要介绍了css3实现千变万化的文字阴影text-shadow效果设计的相关资料,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了CSS3千变万化的文本阴影text-shadow效果实例,供大家参考,具体内容如下 语法: none…

    2025年3月10日 编程技术
    200
  • 关于CSS3使用transition属性实现过渡效果

    css3中新增的transform属性,可以实现元素在变换过程中的过渡效果,实现了基本的动画。下面通过本文给大家介绍css3使用transition属性实现过渡效果,需要的朋友参考下本文 属性详解 transition属性目的是让css的一…

    编程技术 2025年3月10日
    200
  • 如何使用css3实现input输入框颜色渐变发光的效果

    这篇文章主要介绍了关于如何使用css3实现input输入框颜色渐变发光的效果,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 css3都推出好久了,虽然各大主流浏览器对其兼容性还不是很好,特别是IE…但通过添加-moz- -w…

    编程技术 2025年3月10日
    200

发表回复

登录后才能评论