分享到:
发表于 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代码助手 代码解读复制代码 2. 使用 CSS 样式控制 SVG 支持内联样式、内部样式表和外部 CSS 文件,与 HTML 类似。 内联样式 svg arduino 体验AI代码助手 代码解读复制代码 内部样式表 svg xml 体验AI代码助手 代码解读复制代码
.rectangle { fill: lightgreen; stroke: green; stroke-width: 2; } .circle { fill: yellow; stroke: orange; opacity: 0.7; }
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代码助手 代码解读复制代码
#rect { fill: blue; transition: fill 0.5s, width 1s; } #rect:hover { fill: red; width: 80; }
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代码助手 代码解读复制代码 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 自动适应容器尺 |
|
楼主热贴
个性签名:无
|
针对ZOL星空(中国)您有任何使用问题和建议 您可以 联系星空(中国)管理员 、 查看帮助 或 给我提意见