javascript - 将交互式 SVG 动态加载到 Vue.js 项目中

标签 javascript jquery svg vue.js

我有一个几年前用意大利面 jQuery 代码构建的旧项目,我想更新它以使用 JS 框架(主要是出于常见原因:更好的可扩展性、更好的状态管理、更干净/更可维护的代码等。 )。我发现 Vue.js 特别有趣。

该项目允许用户将服务器上目录中的任何大量 .svg 文件动态加载到 DOM 中,然后与它们交互(主要是单击以更改单个路径元素的填充/线条颜色,由jQuery 加上 plugin )。

经过一些研究和实验,我还没有找到一种简单的方法来使用 Vue 来做到这一点——据我所知,我需要手动编辑每个 .svg 文件以将(许多)绑定(bind)到位允许 .svg 的离散部分具有交互性。由于文件数量巨大并且需要快速添加新文件,这是一个破坏性的因素。

我的模糊问题(抱歉)是:有人能指出我更好的解决方案吗? (更适合这个的框架?Vue中的一种方法可以用普通的.svg复制这种交互性?一种自动修改.svg文件以在其任意数量/类型的svg元素上进行Vue绑定(bind)的方法?)

谢谢--

最佳答案

在 Vue 中添加交互性的最简单方法是 convert them to components
但这在您的情况下不起作用,因为 svg 是由用户上传的。

因此,您需要找到或编写一个组件来将此功能添加到您的应用中。

看看https://github.com/seiyable/vue-simple-svg寻找灵感。

关于javascript - 将交互式 SVG 动态加载到 Vue.js 项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52861418/

相关文章:

jquery - 如何在特定屏幕尺寸下使用 jquery 删除 css 类

html - 如何在 Firefox 中获取外部链接的 SVG 剪辑路径

html - 垂直对齐 SVG 图标旁边的文本

javascript - Moment.js - 从输入表单创建 "time"变量

javascript - 使用输入 javascript 更改某个值?

javascript - 没有警告消息如何在表单的下方文本字段中显示错误消息

jquery - 在动态表上使用 Jquery 添加日历日期选择器

javascript - 检测客户端是否使用 HTML5 Youtube 播放器

jquery - 谷歌地图 : Custom icon & Label for Every Marker

css - 文本和 SVG 之间没有换行符