SVG 基本语法

news2024/12/23 22:28:43

1. 概述

        svg为可缩放矢量图形,使用 XML 格式定义图像。

2. 基础图形

2.1 矩形

(1) 基础语法

<rect x="20" y="20" rx="20" ry="20" width="150" height="100" fill="red" stroke="black" stroke-width="5" opacity="0.5"/>

独有属性如下:

        x、y :矩形左上角位置坐标,可省略,默认为原点(0,0)。

        rx、ry:可用于设置圆角半径,可省略。默认为直角。

        width、height:矩形的宽和高。

(2)样式

 

2.2 圆形

(1) 基础语法

<circle cx="100" cy="100" r="50" fill="red" stroke="black" stroke-width="5" />

独有属性如下:

        cx、cy:圆心坐标,可省略,默认为原点(0,0)。

        r:圆半径。

(2)样式

2.3 椭圆

(1) 基础语法

<ellipse cx="100" cy="100" rx="50" ry="30" fill="red" stroke="black" stroke-width="5" />

独有属性如下:

        cx、cy:中心坐标,可省略,默认为原点(0,0)。

        rx、ry:椭圆的水平、纵向半径。

(2)样式

2.4 直线

(1) 基础语法

<line x1="50" y1="50" x2="150" y2="150" stroke="red" stroke-width="5" />

独有属性如下:

        x1、y1:起点坐标,可省略,默认为原点(0,0)。

        x2、y2:终点坐标,可省略。省略时,以原点为起点,x1、y1重点。

(2)样式

2.5 多边形

(1) 基础语法

<polygon points="50,50 100,150 150,30 100,20" fill="red" stroke="black" stroke-width="5" />

独有属性如下:

        points:多边形各顶点坐标。成对配置,两对坐标为一条线段。

(2)样式

2.6 折线

(1) 基础语法

<polyline points="50,50 100,150 150,30 100,20" fill="none" stroke="black" stroke-width="5"/>

独有属性如下:

        points:折线各顶点坐标。成对配置,两对坐标为一条线段。

(2)样式

2.7 路径

(1) 基础语法

<path d="M50 50 L100 150 L150 30 Z" fill="none" stroke="black" stroke-width="5"/>

独有属性如下:

        d:路径命令。

(2)常用命令及语法

        命令字符

(大写-绝对定位,

小写-相对定位)

描述示例图例
M 或 m路径起始位置M50 50
L 或 l使用直线连接到 L 后坐标的位置M50 50L100 100
H 或 h水平线M50 50H150
V 或 v垂线M50 50V150
C 或 c

三次曲线

Cx1 y1, x2 y2, x y

        x1、y1:控制点

        x2、y2:控制点

        x、y:最终坐标

M50 50C100 140,100 140,150 50
S 或 s

平滑三次曲线,跟在C指令或S指令后面补刀,它会自动在C、S基础上生成一个对称点。

Sx2 y2, x y

        x2、y2:控制点

        x、y:最终坐标

M0 50C50 140,50 140,100 50S150 150,200 50
Q 或 q

二次曲线

Qx1 y1, x y

        x1、y1:控制点

        x、y:最终坐标

M0 50Q50 140,100 50
T 或  t

平滑二次曲线,和S指令类似,是给Q、T指令补刀的。

Tx y

        x、y:最终坐标

M0 50Q50 140,100 50T200 50
A 或 a

圆弧曲线

A rx ry deg arc sweep x y

        rx、ry:x轴和y轴半径

        deg:x轴旋转角度

        arc:是否小于180度(0为小1为大)

        sweep:弧线方向(0逆时针1沿顺时针)

        x、y:最终坐标

M50 50A10 20 0 0 0 150 50
Z 或 z闭合路径,自动在最后一个点和起始点之间创建连线, 用于结尾M50 50L100 100L150 50 Z

(3)样式

 2.8 文本

(1) 基础语法

<text x="20" y="50" font-size="30" font-family="黑体" rotate="30" textLength="150">文本示例</text>

特有属性如下:

        x、y:文本左上角位置坐标。

        rotate:每个文本字的旋转角度

        dx、dy:文本左上角位置坐标偏移量,文字起始位置为(x+dx, y+dy)

        textLength:设置文本长度。

        lengthAdjust:调整文本的收缩或扩张方式,与textLength属性配合使用,可选值如下:

                spacing:单个文字大小不变,只收缩或扩张间距

                spacingAndGlyphs:单个文字大小不变,只收缩或扩张间距

        text-anchor:改变(x,y)作为起始坐标的定义。可选值如下:

                start:(x,y)为文本的起始坐标。
                middle:(x,y)为文本的中轴坐标。
                end:(x,y)为文本的结束坐标。

        font-family:字体

        font-size:字体大小

        font-style:字体类型

                normal:文本应以普通形式显示。
                italic:文本应以斜体显示。
                oblique:文本应以斜形式显示。

        font-weight:字体粗细。

        font-stretch:设置字形缩合或扩展量

                normal:正常的字形
                wider:宽的
                narrower:窄的
                ultra-condensed:超压缩字形
                extra-condensed:额外压缩字形
                condensed:压缩字形
                semi-condensed:半压缩字形
                semi-expanded:半扩展字形
                expanded:扩展字形
                extra-expanded:额外扩展字形
                ultra-expanded:超扩展字形

                inherit:使用父节点配置
        font-variant:设置小型大写字母的字体

                normal:默认值。浏览器会显示一个标准的字体。
                small-caps:浏览器会显示小型大写字母的字体
                inherit:使用父节点配置

        font-size-adjust:浏览器将调整字体大小,目前只有Firefox支持。

(2)样式

3. 基础属性

属性描述
fill填充颜色
fill-opacity填充颜色的透明度
fill-rule

填充规则,符合填充规则才可被填充

        nonzero:

        evenodd:

        inherit:

stroke边框颜色
stroke-width边框宽度
stroke-opacity边框透明度
stroke-linecap

单条线端点样式,一般应用于直线、折线或者路径。

        butt:矩形样式,两端坐标为两端宽度中心。

        square:矩形样式,两端坐标为两端宽度一半长度的位置处。长度比butt的长度长一个线宽度。

        round:半圆样式,两端坐标为半圆圆心。

stroke-dasharray虚线边框,可以设置每段虚线的长度和间隔
stroke-dashoffset虚线描边偏移量,使图案向前移动
sroke-linejoin

两条线段之间衔接点的样式,

        miter:尖

        round:圆

        bevel:平

sroke-miterlimitsroke-linejoin=miter时,可设置转角可延伸到多远的距离
opacity定义整个图形的透明度
transform可对图形进行平移、旋转、缩放等形变。
clip-path设置剪切路径
mask设置蒙版

4. 变形处理

(1) 基础语法

可使用transform属性对图形进行平移、旋转、缩放等形变。

(2) 可用变形

属性描述
translate(x-value, y-value)图像偏移,x、y方向偏移x-value, y-value个单位长度。
scale(x-value, y-value)图像缩放,x、y方向扩大或缩小x-value, y-value倍。
rotate(angle,centerX, centerY)

顺时针旋转图形,以(centerX, centerY)点旋转angle度。

centerX, centerY可省略,默认(0,0)

skewX(angle)

skewY(angle)

使土象在x轴和Y轴歪斜angle度。

(3) 示例

<rect width="50" height="50" transform="translate(10,10) skewX(45) skewY(45)"/>

5. defs的应用

5.1 组件

(1) 基础语法

        通过<g>标签定义组件(一组图像),使用<use>标签使用组件。

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200" version="1.1">
    <defs>
        <g id="shape">
            <circle cx="10" cy="0"  r="10" fill="red"/>
            <circle cx="10" cy="20" r="10" fill="red"/>
            <circle cx="0"  cy="10" r="10" fill="red"/>
            <circle cx="20"  cy="10" r="10" fill="red"/>
            <rect width="20" height="20" fill="blue"/>
            <circle cx="10"  cy="10" r="5" fill="green"/>
        </g>
    </defs>
    <use xlink:href="#shape" x="40" y="40" transform="scale(1.5,1.5)" ></use>
    <use xlink:href="#shape" x="100" y="100" transform="skewX(10) skewY(10)" ></use>
    <use xlink:href="#shape" x="50" y="150" ></use>
</svg>

(2)可用标签

滤镜描述效果
g

用来分组用的,它能把多个元素放在一组里。还可以使用<use>进行复制使用。

放在<defs>标签内时,当前组不显示,只有使用<use>复制才显示。

symbol

定义一个图像模板,不会显示任何图像,只有使用<use>复制才显示。

注:等价于<defs><g>......</g></defs>

use用于复制一个形状,可重新设置属性。

5.2 滤镜

(1) 基础语法

 通过<filter>标签可定义一组滤镜效果。

    <defs>
        <filter id="f1" x="0" y="0" width="50" height="50">
            <feGaussianBlur result="blur" in="SourceGraphic" stdDeviation="5"></feGaussianBlur>
        </filter>
    </defs>
    <rect x="10" y="10" width="50" height="50" fill="wheat" stroke-width="2" stroke="black" filter="url(#f1)"/>

(2) 可用滤镜

滤镜描述效果
feGaussianBlur模糊滤镜,属性如下:

        stdDeviation:模糊程度,越大越模糊。

feOffset

偏移滤镜,属性如下:

        dx: 图形在x坐标上的位移
        dy: 图形在y坐标上的位移

feColorMatrix

颜色滤镜,属性如下:

        type:

                matrix:指定4*5的矩阵。前4列是颜色通道比例系数,最后一列是偏移常量

                saturate:指定饱和度转换颜色,有效值 0 ~1

                hueRotate:指定色相旋转转换颜色,有效值0~360

                luminanceToAlpha:阿尔法通道亮度,只是一种特效,无需设置值

        values:用于指定颜色转换的值,颜色转换矩阵、饱和度、色相旋转度。

feBlend

混合滤镜,属性如下:

        in2: 套用滤镜效果的图形来源2
        mode: 图形混和的模式

                normal:正常。示例图一。
                multiply:正片叠底。示例图二。
                screen:滤色。示例图三。
                darken:示例图四。
                lighten:示例图五。

                overlay:
                color-dodge:
                color-burn:
                hard-light:
                soft-light:
                difference:
                exclusion:
                hue:
                saturation:
                color:
                luminosity:

feMerge合并滤镜。需配合子标签feMergeNode一起使用,用来指定要合并的图像。
feComposite

复合滤镜,属性如下:

        in2:

        operator:复合方式

                over:源图形(in)放置在目标图形(in2)之上。示例图一。

                in:只显示源图形(in)与目标图形(in2)重叠的部分。示例图二。

                out:只显示源图形(in)没有被目标图形(in2)重叠的部分。示例图三。

                atop:只隐藏源图形(in)没有被目标图形(in2)重叠的部分。示例图四。

                xor:只隐藏源图形(in)和目标图形(in2)重叠的部分。示例图五。

                lighter:源图形(in)与目标图形(in2)的总和。

                arithmetic:通过k1~k2计算处理复合结果。示例图六。

        k1、k2、k3、k4:像素计算参数

  

feComponentTransfer

为每个像素点颜色的转换,包括亮度、对比度、色彩平衡的调整等。

包含四个子标签:feFuncR、feFuncG、feFuncB、feFuncA,分别对输入值的红色、绿色、蓝色与透明度四个通道的值进行数值处理。属性如下:

        type:

                identity :颜色值不变化

                table:颜色值根据提供的tableValues值进行转变

                discrete:类似table的颜色值计算方法,根据tableValues计算处理颜色值。

                linear:线性方式转换颜色数值。

                gamma:使用gamma函数进行颜色数值处理。

        tableValues:配置值

feConvolveMatrixkernelMatrix:
feDisplacementMap

位置替换滤镜,就是改变元素和图形的像素位置。

        in2:用来映射的图形

        color-interpolation-filters:滤镜效果执行的成像操作的色彩空间。

                auto:颜色插值应出现在sRGB颜色空间中。

                sRGB:颜色插值应出现在sRGB颜色空间中。

                linearRGB:颜色插值应出现在sRGB颜色空间中。

        scale:缩放比例。通常使用正数值处理,值越大,偏移越大

        xChannelSelector:x轴坐标使用的是哪个颜色通道进行位置偏移

        yChannelSelector:y轴坐标使用的是哪个颜色通道进行位置偏移

feFlood

类似油漆桶工具画一个矩形。属性如下:

        x、y:矩形左上角位置坐标。

        width、height:矩形高和宽。

        flood-color:颜色

        flood-opacity:透明度

feImage从外部来源取得图像数据,并提供像素数据作为输出
feMorphology

形态滤镜,属性如下:

        operator:处理模式,默认为 erode

                erode:腐蚀模式,

                dilate:扩张模式
        radius:笔触的大小,接受一个数字,表示该模式下的效果程度,默认为 0

feTile
feTurbulence

半透明的烟熏或波状效果。

        type:

                fractalNoise:烟熏效果,产生的效果更接近云雾

                turbulence: 波状效果

        baseFrequency:频率越大,越复杂其图形也越小越精细,可取值 0.02 ~ 0.2

        numOctaves:精细度,数值越高,产生的效果更详细。 默认值为1

feSpecularLighting

指定从反射面反射的二次光,属性如下:

        lighting-color:光源颜色。

        specularExponent:镜面指数

        specularConstant:镜面常数

需设置子标签fePointLight 或 feDistantLight 或 feSpotLight

feDiffuseLighting

来自外部光源,适合模拟太阳光或者灯光照明。

        lighting-color:光源颜色。

        surfaceScale:表面的高度。

feDistantLight

远光源,属性如下:

        azimuth:方位

        elevation:高度

fePointLight

点光源,属性如下:

        x、 y、z:灯光位置

feSpotLight

聚光源

x、y、z:

pointsAtX、 pointsAtY、 pointsAtZ:发光点位置坐标

specularExponent:

limitingConeAngle:

(3) 公共属性

属性描述
x、y 指定渲染滤镜效果的左上角坐标,默认值:(0,0)
width、height 绘制滤镜容器框的高宽(默认都为 100%)
result 用于定义一个滤镜效果的输出名字,以便将其用作另一个滤镜效果的输入(in)
in 

指定滤镜效果的输入源,可以是某个滤镜导出的 result,也可以是下面 6 个值:

        SourceGraphic    表示图形元素自身
        SourceAlpha    表示图形元素自身,且只使用元素的非透明部分
        BackgroundImage    与 SourceGraphic 类似,但可在背景上使用。 需要显式设置
        BackgroundAlpha    与 SourceAlpha 类似,但可在背景上使用。 需要显式设置
        FillPaint    将其放置在无限平面上一样使用填充油漆
        StrokePaint    将其放在无限平面上一样使用描边绘画      

(4)特效示例

1. 阴影特效

<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" version="1.1">
    <defs>
        <filter id="f1" x="0" y="0" width="50" height="50">
            <feOffset in="SourceGraphic" result="offset" dx="5" dy="5"></feOffset>
            <feGaussianBlur result="blur" in="offset" stdDeviation="5"></feGaussianBlur>
            <feBlend in="SourceGraphic" in2="blur" mode="normal"></feBlend>
        </filter>
    </defs>
    <rect x="10" y="10" width="50" height="50" fill="wheat" stroke-width="2" stroke="black" filter="url(#f1)"/>
</svg>

 

2. 反射二次光效果

<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" version="1.1">
    <defs>
        <filter id="f1" x="0" y="0" width="100" height="100">
            <feSpecularLighting in="SourceGraphic" specularExponent="10"  specularConstant="0.75" result="spec">
                    <fePointLight x="10" y="10" z="50" />
            </feSpecularLighting>
            <feComposite in="SourceGraphic" in2="spec" operator="arithmetic" k1="0" k2="1" k3="1" k4="0" />
        </filter>
    </defs>
    <rect x="10" y="10" width="50" height="50" fill="wheat" stroke-width="2" stroke="black" filter="url(#f1)"/>
</svg>

 3. 褶皱纸张效果

<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" version="1.1">
    <defs>
        <filter id="f1" x="0" y="0" width="50" height="50">
            <feTurbulence type="fractalNoise" baseFrequency='0.04' result='noise' numOctaves="5" />
            <feDiffuseLighting in='noise' lighting-color='#fff' surfaceScale='2' width="50" height="50">
                <feDistantLight azimuth='45' elevation='60' />
            </feDiffuseLighting>        
        </filter>
    </defs>
    <rect x="10" y="10" width="50" height="50" fill="wheat" stroke-width="2" stroke="black" filter="url(#f1)"/>
</svg>

5.3 渐变

(1) 基础语法

1

    <defs>
        <linearGradient id="grad" x1="0" y1="100" x2="100" y2="100" gradientUnits="userSpaceOnUse">
            <stop offset="0%" stop-color="blue"/>
            <stop offset="50%" stop-color="red"/>
        </linearGradient>
    </defs>
    <rect x="0" y="0" width="100" height="100" stroke="green" stroke-width="3"  fill="url(#grad)"/>

1

1

 (2) 可用渐变

渐变描述效果
linearGradient

线性渐变,从一个方向到另一个方向的一种颜色到另一种颜色的线性转换。

        x1、y1:渐变起点坐标

        x2、y2:渐变终点坐标

        spreadMethod:图形元素内散布渐变的方法

                pad:填充。示例图一。

                reflect: 镜像。示例图二。

                repeat: 重复。示例图三。

        gradientUnits:定义梯度内各种长度值的坐标系的单位

                objectBoundingBox:引用元素上的边界框的分数或百分比值

                userSpaceOnUse:引用元素上的坐标值

        gradientTransform:应用渐变之前进行变换(例如旋转),示例图四。

radialGradient

径向渐变,从一个方向到另一个方向的一种颜色到另一种颜色的圆形过渡。

        cx、cy:径向渐变中心坐标x和y。默认50%

        r:渐变的半径

        fx、fy:径向渐变焦点的坐标x和y。默认50%

        spreadMethod:图形元素内散布渐变的方法

                pad:填充。示例图一。

                reflect: 镜像。示例图二。

                repeat: 重复。示例图三。

        gradientUnits:定义梯度内各种长度值的坐标系的单位

                objectBoundingBox:引用元素上的边界框的分数或百分比值

                userSpaceOnUse:引用元素上的坐标值

        gradientTransform:应用渐变之前进行变换(例如旋转)

5.4 文本路径

(1) 基础语法

    <defs>
        <path id="path" d="M0 20  a1,1 0 0,0 90,0"></path>
    </defs>
    <text x="20" y="50" fill="black" stroke-width="4" font-size="15" font-weight="900">
        <textPath xlink:href="#path">我们一起去春游。</textPath>
    </text>

(2)效果

 

5.5 蒙版

(1) 基础语法

通过不同图像的可见度来处理目标图像的显示。

clipPath可通过基础图形、路径、Text剪切图像。区域之内可见,区域之外不可见。

mask中使用颜色来控制透明度:white表示透明度为0,即完全显示;black表示透明度为1,即完全透明

    <defs>
        <clipPath id="clipPath" stroke-width="2" stroke="black">
            <!-- 定义要剪切的形状 -->
            <rect x="15" y="15" width="40" height="40" fill="black"></rect>
        </clipPath>
    </defs>
    <circle id="circle" cx="25" cy="25" r="20" clip-path="url(#clipPath)" stroke="black" fill="red"  ></circle>
    <defs>
        <mask id="myMask">
            <!-- 白色像素下的所有内容都将可见 -->
            <rect x="0" y="0" width="100" height="100" fill="white"/>
            <!-- 黑色像素下的所有内容都将不可见 -->
            <path d="M10,35 A20,20,0,0,1,50,35 A20,20,0,0,1,90,35 Q90,65,50,95 Q10,65,10,35 Z" fill="black"/>
        </mask>
    </defs>
    <polygon points="-10,110 110,110 110,-10" fill="orange"/>
    <!-- 应用此蒙版后,我们在圆圈中“打”一个心形孔 -->
    <circle cx="50" cy="50" r="50" mask="url(#myMask)"/>

 (2) 可用蒙版

蒙版描述效果
clipPathclipPath是1位蒙板,裁剪路径内的图形都可见,外面不可见。
mask

mask是一种蒙板容器,可以指定不同位置的透明度。

5.6 标记

 用于在<path>、<line>、<polyline>、<polygon>元素上绘制箭头或者多边标签图形。

    <defs>
        <marker id="arrow" markerWidth="12" markerHeight="13" refX="2" refY="6" orient="auto">
            <path d="M2,2 L2,10 L10,6 L2,2" style="stroke:none;fill:#000000"></path>
        </marker>
    </defs>
    <line x1="30" y1="20" x2="80" y2="60" stroke-width="1" stroke="black" marker-end="url(#arrow)"></line>

有属性如下:        

        viewBox:可见区域

        refX、refY:图形和直线连接的坐标点

        markerUnits:标记大小的基准

                strokeWidth:线的宽度

                userSpaceOnUse:线前端的大小

        markerWidth、markerHeight:标签的宽高范围,需要大于等于标记图像的大小,否则图像显示不全。

        orient:绘制的方向,可设为auto(自动确认方向)和角度值

        id:标识id,用于引用。

设置位置的属性如下:
        marker-start: 路径的起点处
        marker-mid: 路径的中间端点处(直线只有起点和终点,所以对直线无用)
        marker-end: 路径的终点处

示例:

5.7 图案填充

    <defs>
        <pattern id="pattern" x="2" y="2" width="6" height="6" patternUnits="userSpaceOnUse" >
            <circle cx="2" cy="2" r="2" stroke="green" fill="red" stroke-width="2"/>
        </pattern>
    </defs>
    <rect x="0" y="0" width="100" height="100" fill="url(#pattern)"/>

有属性如下: 

        x、y:指定图案的起始坐标。

        width、height:用于填充图案的宽度和高度。可以是相对值(例如百分比)或绝对值(例如像素)。

        patternUnits:一个填充空间的坐标系单位,pattern标签x、y、width、height的单位。

                userSpaceOnUse:引用元素上的坐标值

                objectBoundingBox:引用元素上的边界框的分数或百分比值,所填充的图形的大小可进行缩放。

        patternContentUnits:填充图案的坐标系单位,pattern标签的子标签(基础图像、路径、文本)等的坐标单位。

                userSpaceOnUse:引用元素上的坐标值

                objectBoundingBox:引用元素上的边界框的分数或百分比值,所填充的图形的大小可进行缩放。

示例:

 6. 动画

(1) 基础语法

(2) 可用动画

动画描述效果
set

元素设置延迟

        attributeName:要改变的元素属性名称

        attributeType:规定的属性值的名称空间,有如下值:

                CSS:css属性值。

                XML:

                auto:浏览器自动判别,默认值。
        to:动画结束的属性值

        begin:动画延迟时间

animate

基础的动画元素,实现单属性的过渡效果。

        attributeName:要改变的元素属性名称

        attributeType:规定的属性值的名称空间

        begin:动画延迟时间

        end:动画结束时间

        dur:过度时间

        repeatCount:重复次数,indefinite为无限期。

        repeatDur:重复时间,indefinite为无限期。

        from:动画开始的属性值
        to:动画结束的属性值

        by:动画的相对变化值,to、by同时配置只生效to

        values:起始和结束值之间的值的列表,分号(;)分隔,from, to, by都会失效。

        fill:

                freeze:动画结束后保持结束以后的状态。

                remove:动画结束直接回到开始的地方,默认值。

        additive:

                replace:替换图像上指定的属性

                sum:叠加图像上指定的属性

        accumulate:

                none:不叠加

                sum:每一次动画属性值都叠加

animateColor控制颜色动画,animate也可以实现这个效果,所以已被废弃。
animateTransform

实现transform变换动画效果,平移、旋转、缩放等效果。

        attributeName:要改变的元素属性名称

        attributeType:规定的属性值的名称空间

        begin:动画延迟时间

        end:动画结束时间

        dur:过度时间

        repeatCount:重复次数,indefinite为无限期。

        repeatDur:重复时间,indefinite为无限期。

        from:动画开始的属性值
        to:动画结束的属性值

        by:动画的相对变化值,to、by同时配置只生效to

        values:起始和结束值之间的值的列表,分号(;)分隔,from, to, by都会失效。

        fill:动画结束之后的状态

                freeze:动画结束后保持结束以后的状态。

                remove:动画结束直接回到开始的地方,默认值。

        additive:

                replace:替换图像上指定的属性

                sum:叠加图像上指定的属性

        accumulate:

                none:不叠加

                sum:每一次动画属性值都叠加

        type:指定变换的类型。

                rotate:旋转

                translate:位移

                scale:缩放

                skewX:水平方向歪斜

                skewY:垂直方向歪斜

animateMotion

定义动画路径,让图形沿着指定路径运动

        begin:动画延迟时间

        end:动画结束时间

        dur:过度时间

        repeatCount:重复次数,indefinite为无限期。

        repeatDur:重复时间,indefinite为无限期。

        from:动画开始的属性值
        to:动画结束的属性值

        by:动画的相对变化值,to、by同时配置只生效to

        values:起始和结束值之间的值的列表,分号(;)分隔,from, to, by都会失效。

        fill:动画结束之后的状态

                freeze:动画结束后保持结束以后的状态。

                remove:动画结束直接回到开始的地方,默认值。

        path:动画运动路径

        rotate:默认为0,元素运动时不会旋转,auto时,元素始终与水平轴对其。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1036442.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

10.4Cookie和Session

一.概念: 二.相关方法: SendCookie: import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servle…

HDLBits-Edgedetect

刚开始写的代码如下&#xff1a; module top_module (input clk,input [7:0] in,output [7:0] pedge );reg [7:0] in_pre;always (posedge clk)begin in_pre < in;endassign pedge in & ~in_pre; endmodule但是提交结果是错误的。猜想原因如下&#xff1a; assign p…

关于地址存放的例题

unsigned int a 0x1234; unsigned char b *(unsigned char*)&a; 上面代码大端存储和小端存储的值分别是多少&#xff1f; 大端存储的是把高位地址存放在低位地址处&#xff0c;低位存放到高位。小端是高位存放在高位&#xff0c;低位在低位。因为a是整型&#xff0c;所…

Python 逢七拍手小游戏

"""逢七拍手游戏介绍&#xff1a;逢七拍手游戏的规则是&#xff1a;从1开始顺序数数&#xff0c;数到有7&#xff0c;或者是7的倍数时&#xff0c;就拍一手。例如&#xff1a;7、14、17......70......知识点&#xff1a;1、循环语句for2、嵌套条件语句if/elif/e…

java框架-Springboot3-基础特性+核心原理

文章目录 java框架-Springboot3-基础特性核心原理profiles外部化配置生命周期监听事件触发时机事件驱动开发SPISpringboot容器启动过程自定义starter java框架-Springboot3-基础特性核心原理 profiles 外部化配置 生命周期监听 事件触发时机 事件驱动开发 Component public c…

竞赛 基于深度学习的目标检测算法

文章目录 1 简介2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 1 简介 &#x1f5…

mybatis日志体系

title: “java日志体系” createTime: 2021-12-08T12:19:5708:00 updateTime: 2021-12-08T12:19:5708:00 draft: false author: “ggball” tags: [“mybatis”] categories: [“java”] description: “java日志体系” java日志体系 常用日志框架 Log4j&#xff1a;Apache …

华为云云耀云服务器L实例评测|搭建您的私人影院网站

前言 本文为华为云云耀云服务器L实例测评文章&#xff0c;测评内容是云耀云服务器L实例搭建在线视频网站&#xff0c;大家可以将这个网站作为私人影院或是分享给朋友&#xff0c;但是尽量不要更广的传播&#xff0c;因为这涉及到版权问题 系统配置&#xff1a;华为云 2核2G 3M…

PostgreSQL 16 发布,更可靠更稳健

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

【LeetCode-简单题】513. 找树左下角的值

文章目录 题目方法一&#xff1a;DFS递归 前序遍历方法二&#xff1a;BFS层序双队列 题目 方法一&#xff1a;DFS递归 前序遍历 递归三部曲 确定递归函数参数和返回值确定递归结束条件编写常规递归体 本题只会在叶子结点才会去统计结果 也就是 root.leftnull&&root.r…

Flink DataStream API

DataStream API是Flink的核心层API。一个Flink程序&#xff0c;其实就是对DataStream的各种转换。具体来说&#xff0c;代码基本上都由以下几部分构成&#xff1a; package com.atguigu.env;import org.apache.flink.api.common.JobExecutionResult; import org.apache.flink.a…

AIGC百模大战

AIGC Artificial Intelligence Generated Content&#xff0c; 或者Generative Artificial Intelligence&#xff0c;它能够生成新的数据、图像、语音、视频、音乐等内容&#xff0c;从而扩展人工智能系统的应用范围。 生成式人工智能有可能给全球经济带来彻底的变化。根据高盛…

在树莓派上实现numpy的conv2d卷积神经网络做图像分类,加载pytorch的模型参数,推理mnist手写数字识别,并使用多进程加速

这几天又在玩树莓派,先是搞了个物联网,又在尝试在树莓派上搞一些简单的神经网络,这次搞得是卷积识别mnist手写数字识别 训练代码在电脑上,cpu就能训练,很快的: import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, tra…

spring-cloud-stream版本升级,告别旧注解@EnableBinding,拥抱函数式编程

spring-cloud-stream中&#xff0c;EnableBinding从3.1开始就被弃用&#xff0c;取而代之的是函数式编程模型 同期被废弃的注解还有下面这些注解 Input Output EnableBinding StreamListener 官方例子&#xff1a;GitHub - spring-cloud/spring-cloud-stream-samples: Sample…

电视访问群晖共享文件失败的设置方式,降低协议版本

控制面板-文件服务-SMB-高级设置&#xff0c;常规及其他里面配置即可。

微信公众号小说系统源码 漫画系统源码 可对接微信公众号 APP打包 对接个人微信收款

源码描述&#xff1a;修复版掌上阅读小说源码_公众号漫画源码可以打包漫画app ■产品介绍 掌上阅读小说源码支持公众号、代理分站支付功能完善强大的小说源码&#xff0c;公众号乙帅读者&#xff0c; 可以对接微信公众号、APP打包。支持对接个人微信收款。 ■产品优势 1新增…

免费好用的Mac电脑磁盘清理工具CleanMyMac

许多刚从Windows系统转向Mac系统怀抱的用户&#xff0c;一开始难免不习惯&#xff0c;因为Mac系统没有像Windows一样的C盘、D盘&#xff0c;分盘分区明显。因此这也带来了一些问题&#xff0c;关于Mac的磁盘的清理问题&#xff0c;怎么进行清理&#xff1f;怎么确保清理的干净&…

3+氧化应激+分型+预后模型

今天给同学们分享一篇3氧化应激分型预后模型的生信文章“An oxidative stress-related signature for predicting the prognosis of liver cancer”&#xff0c;这篇文章于2023年月4日发表在Front Genet 期刊上&#xff0c;影响因子为3.7。 越来越多的证据表明&#xff0c;肿瘤…

【MySQL数据库事务操作、主从复制及Redis数据库读写分离、主从同步的实现机制】

文章目录 MySQL数据库事务操作、主从复制及Redis数据库读写分离、主从同步的实现机制ACID及如何实现事务隔离级别&#xff1a;MVCC 多版本并发控制MySQL数据库主从复制主从同步延迟怎么处理Redis 读写分离1.什么是主从复制2.读写分离的优点 Redis为什么快呢&#xff1f; MySQL数…

【完美世界】天仙书院偷食也就算了,竟然还偷院长的孙女,美滋滋

Hello,小伙伴们&#xff0c;我是小郑继续为大家深度解析完美世界系列。 齐道临从天仙书院劫走石昊&#xff0c;为何天仙书院不仅没去找他麻烦&#xff0c;反而给他一块随意进入渡劫神莲池的令牌&#xff1f;石昊来到上界也是闹出不小的动静&#xff0c;先是在恶魔岛的神碑留名&…