SVG 学习<六> SVG的transform

SVG元素也有transform属性,位移、缩放、倾斜、旋转。

这次一次性把代码都贴出来算了。

HTML代码

    <svg xmlns="http://www.w3.org/2000/svg">
        <rect class="No1" />
        <rect class="No2" />
        <rect class="No3" />
        <rect class="No4" />
        <rect class="No5" />
        <rect class="No6" />
        <rect class="No7" transform="rotate(90,885 60)"/>
    </svg>

css代码

        /**/
        .No1{ x:10px;y:10px;width:150px;height:100px;fill:rgb(255,150,0);stroke:none;transition:1s all; }
        svg:hover .No1{ transform: translate(50px, 50px); }
        /**/
        .No2{ x:170px;y:10px;width:150px;height:100px;fill:rgb(0,250,255);stroke:none;transition:1s all; }
        svg:hover .No2{ transform: rotateX(90deg); }
        /**/
        .No3{ x:330px;y:10px;width:150px;height:100px;fill:rgb(255,255,0);stroke:none;transition:1s all; }
        svg:hover .No3{ transform: rotateY(90deg); }
        /**/
        .No4{ x:490px;y:10px;width:150px;height:100px;fill:rgb(255,0,0);stroke:none;transition:1s all; }
        svg:hover .No4{ transform: rotate(88deg); }
        /**/
        .No5{ x:650px;y:10px;width:150px;height:100px;fill:rgb(0,255,0);stroke:none;transition:1s all; }
        svg:hover .No5{ transform: skew(45deg); }
        /**/
        .No6{ x:10px;y:120px;width:150px;height:100px;fill:pink;stroke:none;transition:1s all; }
        svg:hover .No6{ transform: scale(1.5,1.5); }
        /**/
        .No7{ x:810px;y:10px;width:150px;height:100px;fill:rgb(0,0,255);stroke:none; }

说明下:No6 是第二排粉色的,No7是第一排最后一个蓝色。

看过代码和案例图相信聪明的小伙伴已经知道怎么玩transform了吧。看懵的也没事,这里简单解释一下。

元素旋转rotate

rotate    2D旋转圆心为svg左上角的点;

rotateY  3Dy轴旋转以svg上边为轴心;

rotateX  3Dx轴旋转以svg左边为轴心;

元素位移translate

设置translate后则会以矩形左上角(圆形和椭圆则为圆心)为x0 y0创建出相对坐标系,位移坐标则对应相对坐标系中的坐标。

参考资料:CSS3动画特效——transform详解 和 张鑫旭的详细讲解

时间: 2024-10-25 04:45:11

SVG 学习<六> SVG的transform的相关文章

SVG 学习&lt;五&gt; SVG动画

先上个动画图 说道SVG动画不得不提到两个属性:stroke-dasharray(这个前面有提到,做虚线的)stroke-dashoffset (这个是关键). 先说说stroke-dasharray 之前提过 可以把线条做成虚线状,值可以为一个数值 也可以是一个数组.详见:SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 最后一段.在动画里 stroke-dasharray 用来绘制路径或者虚线环绕效果. stroke-dashoffset : 官方解释 svg的

SVG 学习&lt;八&gt; SVG的路径——path(2)贝塞尔曲线命令、光滑贝塞尔曲线命令

查阅一些关于贝塞尔曲线资料后,对贝塞尔曲线有了大概的了解. 个人对贝塞尔曲线的理解: 二次贝塞尔曲线:由起点.终点和一个控制点控制的范围内绘制的一条曲线: 三次贝塞尔曲线:由起点.终点和两个个控制点控制的范围内绘制的一条曲线: 四次贝塞尔曲线/五次贝塞尔曲线 ... ... 以此类推. 贝塞尔曲线命令 理解了什么是贝塞尔曲线,贝塞尔曲线命令就很好理解了. SVG中只能定义二次 三次贝塞尔曲线 二次贝塞尔曲线:Q x1 y1 x y: x1 y1 定义二次贝塞尔曲线控制点坐标, x y 定义二次贝

SVG 学习&lt;七&gt; SVG的路径——path

SVG的path可以理解外一支画笔,由一连串的命令控制画笔在SVG中绘制需要的形状. path通过属性 d 来编写画笔命令. 命令说明: 其中 大写命令坐标是绝对位置,小写命令坐标是相对位置. 直线命令: 例(大写命令): <path d="M10 10,L200 200,V50,H10,L10 10"/> 例(小写命令): <path d="m10 10,l200 200,v50,h10,l10 10"/> 直线命令解析: M/m:移动命令

SVG学习笔录(一)

SVG可缩放矢量图形(Scalable Vector Graphics)这项技术,现在越来越让大家熟知,在h5的移动端应用使用也越来越广泛了, 下面让我分享给大家svg学习的经验. HTML体系中,最常用的绘制矢量图的技术是SVG和HTML5新增加的canvas元素.这两种技术都支持绘制矢量图和光栅图. 一.什么是svg? Graphics)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式.SVG是W3C在2000年8月制定的一种新的二维矢量图形格式,也是规范中的网络矢量图形标

SVG 学习(一)

SVG 意为可缩放矢量图形(Scalable Vector Graphics). SVG 使用 XML 格式定义图像. 什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失 SVG 是万维网联盟的标准 SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体 SVG 的历史和优势 在 2003 年一月,SVG

SVG学习心得

在前端开发的过程中,为了界面的美观,会用到很多好看但无法纯利用HTML和CSS实现的图形(对于大佬们这就不算事了,但对于我这个刚入行的后生就难了),如下面的几个图形,如果不用美工妹妹的PS图片,我个人觉得是比较难实现的: 以上的图形利用纯HTML和CSS是比较难实现的,幸好前段时间刚好看到有篇关于SVG的实例讲解,学习了一下SVG,下面是我的学习心得(这是我第一次写博客,写的不好多多见谅) 1.什么是SVG?(这里引用w3school的定义) SVG 指可伸缩矢量图形 (Scalable Vec

svg学习笔记(一)

SVG——可扩展适量图形,基于XML PC端:IE9+   wap端:表现良好,适合使用 基础图形: line(线段)  <line x1="25" y1="150" x2="375" y2="50" stroke="#f00"></line> polyline(折线) <polyline points="250 75,350 100,100 0" stro

HTML5实战——svg学习

百度百科: SVG可缩放矢量图形(Scalable Vector Graphics)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式.SVG是W3C制定的一种新的二维矢量图形格式,也是规范中的网络矢量图形标准.SVG严格遵从XML语法,并用文本格式的描述性语言来描述图像内容,因此是一种和图像分辨率无关的矢量图形格式. 什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义用于网络的基于矢量的图形 SVG 使用 XML 格

[翻译]svg学习系列 开篇

网上svg的资料太少 买个书也买不到 碰巧遇到一个外国友人的svg学习些列,翻译下 http://tutorials.jenkov.com/svg/index.html svg 简介 可缩放矢量图形是基于可扩展标记语言(标准通用标记语言的子集),用于描述二维矢量图形的一种图形格式.它由万维网联盟制定,是一个开放标准. 今天的现代多数浏览器都支持SVG  ie9+ 火狐 chrome 等 svg 最大的用途就是绘图 各种图标 等 ,在网页上直接绘图 因为svg本身的dom节点,所以可以和网页上其他