当前位置: 首页 > article >正文

【日常记录-JS】HTML5中使用SVG元素

Author:赵志乾
Date:2024-08-28
Declaration:All Right Reserved!!!

1. 简介

        在HTML5中使用SVG元素主要涉及到将SVG代码直接嵌入HTML文档,或者通过HTML元素(如<img>、<object>、<iframe>)来引用外部SVG文件。然而,直接嵌入SVG代码通常提供了更大的灵活性和控制力,因为它允许直接在HTML中定义SVG图形的形状、大小、颜色等属性,并且可以使用CSS和JavaScript来进一步样式化和交互。

2. HTML5直接嵌入SVG代码

  2.1 创建SVG容器

        在HTML文档中创建一个<svg>元素作为SVG图形的容器。

<svg width="100" height="100">  
  <!-- SVG图形内容将放在这里 -->  
</svg>
  2.2 添加SVG图形元素

        <svg>元素可以包含多个子元素,如<circle>、<rect>、<path>、<text>等,用于定义图形的不同部分。例如,可以添加一个圆形:

<svg width="100" height="100">  
  <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />  
</svg>

        其中,<circle>元素定义了一个圆形,cx和cy属性指定了圆心的坐标,r属性指定了圆的半径,stroke和stroke-width属性定义圆的边框颜色和宽度,而fill属性则定义了圆的填充颜色。

  2.3 使用CSS样式化SVG

        可以像其他HTML元素一样,使用CSS来样式化SVG元素。可以直接在SVG元素上使用style属性或者通过class和外部CSS文件来应用样式。

<svg width="100" height="100" style="border:1px solid black;">  
  <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" class="my-circle" />  
</svg>  
  
<style>  
  .my-circle {  
    /* CSS样式 */  
    transition: fill 0.5s;  
  }  
  
  .my-circle:hover {  
    fill: red;  
  }  
</style>
  2.4 使用JavaScript与SVG交互

        由于SVG是DOM(文档对象模型)的一部分,故可以使用JavaScript来动态修改SVG图形的属性、添加事件监听器等。

<svg width="100" height="100" id="mySvg">  
  <circle cx="50" cy="50" r="40" id="myCircle" stroke="green" stroke-width="4" fill="yellow" />  
</svg>  
  
<script>  
  document.getElementById('myCircle').addEventListener('click', function() {  
    this.setAttribute('fill', 'blue');  
  });  
</script>

        该例子中,当用户点击圆形时,圆的填充颜色会变成蓝色。

3. 总结

        在HTML5中使用SVG元素是一种强大且灵活的方式来创建矢量图形,它们可以很容易地集成到网页中,并支持通过CSS和JavaScript进行样式化和交互。通过直接在HTML文档中嵌入SVG代码,可以充分利用这些功能来创建引人入胜的视觉效果和交互体验。


http://www.kler.cn/news/288773.html

相关文章:

  • LeetCode40 组合总和 II
  • 安卓model转鸿蒙ets
  • Centos挂载yum源
  • Spring框架
  • 店铺所有商品接口数据解析,JSON格式的示例
  • 在Spring Boot中实现请求IP白名单拦截
  • python-读取word中的内容
  • 代码随想录第二十天 | 513. 找树左下角的值,路径总和,106. 从中序与后序遍历序列构造二叉树
  • react|useState的异步渲染
  • 【AIGC】ChatGPT 3.5/4.0 新手使用手册
  • 【pyhton】python如何实现将word等文档中的文字转换成语音
  • 如何用Python 下载B站上的视频
  • SQL【2】稍稍进阶
  • 无人机图传通信模组,抗干扰、稳定传输,8公里图传模组原理
  • 最长回文子串:动态规划推导
  • JAVA 手机部件功耗计算
  • 魅力中国:全球消费者 “反向海淘” 首选,淘宝代购集运系统搭建秘籍
  • 趣味算法------单一背包问题(01背包问题)贪心算法解决
  • 安防视频综合管理系统EasyCVR视频汇聚平台集群部署出现状态不同步的情况是什么原因?
  • 遥控器显示分别对应的无人机状态详解!!
  • VUE2.0 elementUI el-input-number 数据更新,视图不更新——基础积累
  • 使用idea快速创建springbootWeb项目(springboot+springWeb+mybatis-Plus)
  • 2.SpringBoot项目pom.xml文件配置
  • 【安卓面试】
  • 科学高效的FPGA编程方法
  • 从0到DevOps(1)-初步了解DevOps和容器
  • Nginx集成第三方负载均衡模块:配置指南与实践
  • 正则表达式模块re及其应用
  • 在K8s上运行GitHub Actions的自托管运行器
  • Swift 可选类型