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

原生JS使用svg-pan-zoom库平移和缩放svg

文章目录

  • svg-pan-zoom库
  • 效果图
  • 示例代码

svg-pan-zoom库

github地址:https://github.com/bumbu/svg-pan-zoom

效果图

可以在前端加载svg字符串显示svg,然后用中键平移svg,用滚轮缩放svg。

在这里插入图片描述

示例代码

可以从github下载用于生产环境的压缩版js:svg-pan-zoom.min.js,或者使用cdn地址。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><!-- <script src="svg-pan-zoom.min.js"></script> --><script src="https://cdn.jsdelivr.net/npm/svg-pan-zoom@3.5.0/dist/svg-pan-zoom.min.js"></script><style>html,body,#svgContainer {margin: 0;padding: 0;width: 100%;height: 100%;overflow: hidden;border: red;}</style></head><body><div id="app"><div id="svgContainer"></div></div></body><script>init();async function init() {let svgStr = await this.getSvgStr("./test.svg");// 设置div的内容为svg字符串document.getElementById("svgContainer").innerHTML = svgStr;let svgElement = document.querySelector("svg");svgElement.setAttribute("width", "100vw");svgElement.setAttribute("height", "100vh");//创建svg控制平移缩放的实例let panZoom = svgPanZoom(svgElement, {zoomEnabled: true,panEnabled: true,maxZoom: 500,minZoom: 0.01,dblClickZoomEnabled: false,controlIconsEnabled: false,zoomScaleSensitivity: 1,});}//获取svg字符串(读取本地svg文件)async function getSvgStr(svgPath) {return fetch(svgPath).then((response) => response.text()).catch((error) => {console.error("读取svg文件失败:", error);});}</script>
</html>
http://www.dtcms.com/a/310975.html

相关文章:

  • 【网络与爬虫 37】ScrapeFly深度解析:云端爬虫革命,告别复杂部署拥抱一键API
  • ICCV2025 | 对抗样本智能安全方向论文汇总 | 持续更新中~
  • 数字人开发01--后端服务配置
  • ABP VNext + Redis Bloom Filter:大规模缓存穿透防护与请求去重
  • 嵌入式第十八课!!数据结构篇入门及单向链表
  • Python 类三大方法体系深度解析:静态方法、类方法与实例方法
  • LeetCode 每日一题 2025/7/28-2025/8/3
  • js的BOM
  • Redis核心机制与实践深度解析:从持久化到分布式锁
  • 中科院开源HYPIR图像复原大模型:1.7秒,老照片变8K画质
  • 北斗变形监测在地质灾害预警中的应用
  • 机器学习消融实验:方法论演进、跨领域应用与前沿趋势
  • sqli-labs:Less-19关卡详细解析
  • 基于单片机智能雨刷器/汽车刮水器设计
  • CCF IVC 2025“汽车安全攻防赛” -- Crypto -- WriteUp
  • 进程 Vs 线程
  • 小迪23年-22~27——php简单回顾(1)
  • 滚珠花键在汽车制造中有哪些高要求?
  • 【05】VisionMaster入门到精通——圆查找
  • 内网渗透——红日靶场七
  • 排序算法-堆排序
  • MybatisPlus-静态工具DB
  • 在 AKS 中运行 Azure DevOps 私有代理-1
  • 云原生三剑客:Kubernetes + Docker + Spring Cloud 实战指南与深度整合
  • 基于 LFU 策略的存储缓存系统设计与实现
  • 深入 Go 底层原理(八):sync 包的实现剖析
  • Node.js 操作 MongoDB
  • 【机器学习】“回归“算法模型的三个评估指标:MAE(衡量预测准确性)、MSE(放大大误差)、R²(说明模型解释能力)
  • 分布式事务----spring操作多个数据库,事务以及事务回滚还有用吗
  • Oracle 11gR2 Clusterware应知应会