当前位置: 首页 > 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.xdnf.cn/news/1228861.html

相关文章:

  • 八股取士--docker
  • 【C++】第二十一节—一文详解 | 红黑树实现(规则+效率+结构+插入+查找+验证)
  • Day18--二叉树--530. 二叉搜索树的最小绝对差,501. 二叉搜索树中的众数,236. 二叉树的最近公共祖先
  • 【MQ】kafka同步和异步的区别
  • 函数指针——回调函数
  • MybatisPlus-逻辑删除
  • Redis核心机制与实践深度解析:从持久化到分布式锁
  • 江协科技STM32 13-1 PWR电源控制
  • AG32mcu通过寄存器方式操作cpld
  • 3 使用 Jenkins 构建镜像:将你的应用打包成镜像
  • sqli-labs:Less-18关卡详细解析
  • 【隧道篇 / IPsec】(7.6) ❀ 02. 如何删除向导创建的IPsec安全隧道 (点对点) ❀ FortiGate 防火墙
  • K8S部署ELK(三):部署Elasticsearch搜索引擎
  • Java基础——实现图书管理系统交互功能
  • java实现运行SQL脚本完成数据迁移
  • String boot 接入 azure云TTS
  • 【深度学习②】| DNN篇
  • Python 字典为什么查询高效
  • Python编程基础与实践:Python基础数据类型入门
  • 如何在Ubuntu上部署excalidraw
  • 逻辑回归 银行贷款资格判断案列优化 交叉验证,调整阈值,下采样与过采样方法
  • 管家婆线下CS产品创建账套(普普、普及、辉煌II)
  • 小迪23-28~31-js简单回顾
  • LINUX82 shell脚本变量分类;系统变量;变量赋值;四则运算;shell
  • PYTHON从入门到实践-18Django从零开始构建Web应用
  • 9.3panic!最佳实践
  • 硬件-电容学习DAY1——钽电容失效揭秘:从冒烟到爆炸全解析
  • Next.js 怎么使用 Chakra UI
  • day38 力扣279.完全平方数 力扣322. 零钱兑换 力扣139.单词拆分
  • python---literal_eval函数