我可以: 邀请好友来看>>
ZOL星空(中国) > 技术星空(中国) > Java技术星空(中国) > 让我们懂的svg图片的属性操作问题
帖子很冷清,卤煮很失落!求安慰
返回列表
签到
手机签到经验翻倍!
快来扫一扫!

让我们懂的svg图片的属性操作问题

12浏览 / 0回复

雄霸天下风云...

雄霸天下风云起

0
精华
188
帖子

等  级:Lv.5
经  验:3758
  • Z金豆: 834

    千万礼品等你来兑哦~快点击这里兑换吧~

  • 城  市:北京
  • 注  册:2025-05-16
  • 登  录:2025-05-30
发表于 2025-05-28 15:09:21
电梯直达 确定
楼主

SVG(可缩放矢量图形)是基于 XML 语法的二维图形格式,具有高度的可操作性。下面详细介绍 SVG 图片的属性操作方法,包括基础属性、样式控制、事件绑定及动态修改等内容。

1. SVG 基础属性

SVG 元素通过属性定义形状、位置和外观,常见属性包括:

几何属性


x, y:元素位置(坐标)

width, height:尺寸

cx, cy, r:圆形的圆心和半径

points:多边形或折线的顶点坐标


样式属性


fill:填充颜色(如fill="red")

stroke:描边颜色

stroke-width:描边宽度

opacity:透明度(0-1 之间)

transform:变换(平移、旋转、缩放等)


示例:基础 SVG 元素

svg

arduino 体验AI代码助手 代码解读复制代码

 

 

  SVG Text


2. 使用 CSS 样式控制

SVG 支持内联样式、内部样式表和外部 CSS 文件,与 HTML 类似。

内联样式

svg

arduino 体验AI代码助手 代码解读复制代码


内部样式表

svg

xml 体验AI代码助手 代码解读复制代码

 

 

 


3. 动态修改 SVG 属性

可以通过 j 操作 SVG 元素,实现动画或交互效果。

示例:点击改变颜色

html

预览

arduino 体验AI代码助手 代码解读复制代码

 


  const circle = document.getElementById("myCircle");

  circle.addEventListener("click", () => {

    // 修改填充颜色和半径

    circle.setAttribute("fill", "red");

    circle.setAttribute("r", "30");

  });


示例:使用 CSS 过渡实现平滑动画

svg

xml 体验AI代码助手 代码解读复制代码

 

 


4. 变换(Transform)属性

通过transform属性可以对 SVG 元素进行平移、旋转、缩放等操作。

常见变换类型


translate(x, y):平移

rotate(angle, cx, cy):旋转(围绕指定点)

scale(sx, sy):缩放

skewX(angle), skewY(angle):倾斜


示例:组合变换

svg

ini 体验AI代码助手 代码解读复制代码

 

        transform="rotate(45, 50, 30) translate(10, 0)" />


5. 事件绑定

SVG 支持与 HTML 类似的事件,如click、mouseover、mousemove等。

示例:鼠标交互

svg

arduino 体验AI代码助手 代码解读复制代码

 

  Hover me


 

    const circle = document.getElementById("interactiveCircle");

    const text = document.getElementById("statusText");

    

    circle.addEventListener("mouseover", () => {

      circle.setAttribute("fill", "pink");

      text.textContent = "Mouse over!";

    });

    

    circle.addEventListener("mouseout", () => {

      circle.setAttribute("fill", "purple");

      text.textContent = "Hover me";

    });

  ]]>


6. 响应式 SVG

通过viewBox属性可以实现 SVG 的自适应缩放,确保在不同尺寸下保持比例。

示例:响应式 SVG

svg

arduino 体验AI代码助手 代码解读复制代码

 


总结

操作类型方法示例修改属性setAttribute("属性名", "值")circle.setAttribute("fill", "red")添加样式类classList.add("类名")rect.classList.add("highlight")事件监听addEventListener("事件", 回调函数)circle.addEventListener("click", ...)变换transform="rotate(45, 50, 50)"旋转 45 度(围绕点 50,50)响应式viewBox="0 0 100 100" width="100%"SVG 自动适应容器尺


高级模式
星空(中国)精选大家都在看24小时热帖7天热帖大家都在问最新回答

针对ZOL星空(中国)您有任何使用问题和建议 您可以 联系星空(中国)管理员查看帮助  或  给我提意见

快捷回复 APP下载 返回列表