将背景图像设置为动态 svg 数据?

2023-11-25

最初我有一些内联 svg,它可以按我想要的方式工作。

<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <pattern id="smallGrid" width="10" height="10" patternUnits="userSpaceOnUse">
      <path d="M 10 0 L 0 0 0 10" fill="none" stroke="gray" stroke-width="0.5"/>
    </pattern>
    <pattern id="grid" width="100" height="100" patternUnits="userSpaceOnUse">
      <rect width="100" height="100" fill="url(#smallGrid)"/>
      <path d="M 100 0 L 0 0 0 100" fill="none" stroke="gray" stroke-width="1"/>
    </pattern>
  </defs>
  <rect width="100%" height="100%" fill="url(#grid)" />
</svg>

很好,因为它是内联的,我可以在它上面做 jQuery 选择器来取消日期:宽度/高度和 path.d 属性。

这样,它就是一个覆盖 div,它没有达到我想要的效果。

下一步我想将其保存为 svg 文件,然后引用它:

<div style="background-image:url('images/grid.svg');"></div>

这对我来说是完美的,因为我拿了一些已经存在的东西并给它一个背景,而不是拥有一个带有数据的全新 div。

背景图像路径的问题是我无法动态调整高度/宽度/path.d 属性

有没有一种方法可以让我两全其美?

background-image + being able to query and update the attributes?

这是我最初用于内联 set_gridSize 函数的代码:

Form.set_gridSize = function (num) {
    num = Number(num);
    Form.gridSize = num;

    var defs = $("div.grid-for-gridlock > svg > defs");
    defs.children("#smallGrid").attr({ Height: num, Width: num });
    var path = defs.children("#smallGrid").children().attr("d");
    var arr = path.split(" ");
    arr[1] = num;
    arr[arr.length - 1] = num;
    path = arr.join(" ");
    defs.children("#smallGrid").children("path").attr("d", path)
    defs.children("#grid").attr({ Height: num * 10, Width: num * 10 });
    defs.children("#grid").children("rect").attr({ eight: num * 10, Width: num * 10 });
    var path = defs.children("#grid").children("path").attr("d");
    var arr = path.split(" ");
    arr[1] = num*10;
    arr[arr.length - 1] = num*10;
    path = arr.join(" ");
    defs.children("#grid").children("path").attr("d",path);
}

谢谢! :)

edit:我用了如何使用 html5 和(canvas 或 svg)绘制网格作为我计算 SVG 和 html5 网格的来源。


更简单的方法:

var green = '3CB54A';
var red = 'ED1F24';
var svg = '<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"  width="320px" height="100px" viewBox="0 0 320 100" enable-background="new 0 0 320 100" xml:space="preserve"> <polygon class="mystar" fill="#'+green+'" points="134.973,14.204 143.295,31.066 161.903,33.77 148.438,46.896 151.617,65.43 134.973,56.679 118.329,65.43 121.507,46.896 108.042,33.77 126.65,31.066 "/><circle class="mycircle" fill="#'+red+'" cx="202.028" cy="58.342" r="12.26"/></svg>';      
var encoded = window.btoa(svg);
document.body.style.background = "url(data:image/svg+xml;base64,"+encoded+")";

在这里小提琴

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将背景图像设置为动态 svg 数据? 的相关文章

  • 按日期对 JSON 进行排序

    我知道这一定相对简单 但我有一个 JSON 数据集 我想按日期排序 到目前为止 我每次都会遇到问题 现在我将日期存储为this lastUpdated 如果有帮助的话 我可以访问 jquery 但我意识到 sort 是本机 JS 提前致谢
  • jQuery 中如何判断 JSON 对象是否为空

    我有以下 JSON meta limit 20 next null offset 0 previous null total count 0 objects 我对对象感兴趣 我想知道对象是否为空并显示警报 像这样的东西 success fu
  • 使用 Javascript 对象模型在 SharePoint 任务上设置“分配给”

    我想创建一个共享点任务并将其分配给我自己 当前用户 在 javascript 对象模型中 我有下面的代码 但我认为我需要设置 spusercollection 对象 而不是设置特定用户 但是 我似乎无法在任何地方找到如何执行此操作的任何示例
  • 如何防止默认事件触发但仍允许事件冒泡

    使用 jQuery 使用以下代码 我想防止 href url 在本例中为哈希 在单击时触发 但仍然允许单击事件继续在链上冒泡 请问如何实现这一点 div a href Test a div a click function e stop a
  • jquery 事件委托

    我正在尝试使用事件委托重写一段代码 希望它能停止与另一个 js 代码段发生冲突 但我已经破解了密码 原来的 to scale up on hover var current h null var current w null piccon
  • jQuery 如何通过不同的列值计算表中的行数

    如何按表列计算不同的表行 Example table thead tr th NAME th th TECHNOLOGY th tr thead tbody tr td john td td jQuery td tr tr td mark
  • 哪些控件触发了 Page.IsValid = false?

    两件事情 是否可以通过 Jquery 设置 Page IsValid Is Valid 属性 以便我不必使用 aspx 验证器 据我了解 IsValid 属性是只读的 当验证器进入时 是否可以通过 Jquery 当然 找出哪些控件导致验证失
  • 使用 jQuery 更改 SVG 元素的“xlink:href”属性

    我正在尝试使用单击事件更改 xlink href 属性 到目前为止它部分有效 这就是我正在做的 HTML a href class ui btn ui corner all ui shadow editIcon style text ali
  • 如何更改 Vuetify 日历日期格式

    我正在尝试在以下 Vuetify 日历上启用输入事件 https github com vuetifyjs vuetify blob master packages docs src examples calendars complex e
  • 根据数据更改图例颜色高图表

    我可以根据数据动态设置列的颜色 但无法弄清楚如何更改图例中的颜色 请注意 jsfiddle 最新的条形图是绿色的 但图例是蓝色的 有没有办法改变列颜色也会改变图例颜色 这是我用于列颜色的代码 jsfiddle http jsfiddle n
  • 单击时突出显示文本(javascript jquery html)

    当您在所有浏览器中双击某个单词时 它们会自动突出显示单击下的单词 但是否有可能找到一种方法exact单击一下就会发生同样的事情吗 我想这涉及到的事情可能是 TextRange 的东西 对所有段落 或整个正文或 div 的 onclick 做
  • 加载 angularjs 路由后运行 javascript 代码

    我需要在 angularjs 加载路线后显示警报 显示警报的代码位于 angularjs 异步加载的视图中 视图加载后 我希望它能够运行 但它没有 我知道我可以广播并告诉它稍后运行等 但我需要一个更通用的解决方案 假设您正在谈论基于以下内容
  • jQuery 单击附加元素不起作用

    我有一个数组 我正在从 Array 获取数据并在 jQuery Append to list 中使用它 但是当我单击列表项时 它只显示最后一个元素 var array 1 2 7 3 4 8 5 6 9 for var i 0 i lt a
  • Modernizr 未将类应用于 html 标签

    我目前正在构建一个网站 我需要使用 Modernizr 但由于某种原因 它没有将类应用到 html 标签 因为它应该 我的代码如下所示
  • .parents() 没有 jquery - 或 querySelectorAll 为父母[重复]

    这个问题在这里已经有答案了 可能的重复 使用 matchesSelector js 检查 event target parentElement https stackoverflow com questions 12977658 check
  • 数据表导出按钮问题 - 按钮不显示

    我试图在屏幕中央和数据表下方显示一个导出按钮 该按钮根本不显示 我已经下载了数据表文件 它们托管在我的服务器上 因此是本地引用
  • 自动更改 Twitter Bootstrap 选项卡

    我希望 Twitter Bootstrap 选项卡按时间顺序更改 我使用它们有点像旋转木马 我希望选项卡每 10 秒切换到下一个选项卡 这是一个例子 http library buffalo edu http library buffalo
  • python 函数返回 javascript date.getTime()

    我正在尝试创建一个简单的 python 函数 它将返回与 javascript 相同的值new Date getTime 方法 如所写here http www w3schools com js js dates asp javascrip
  • 在 Map() 的条目上使用 Promise.all

    我正在使用 Map 来表示一些键 值对 let myMap new Map myMap set foo bar myMap set foo2 bar42 对于每个 Map 条目 我执行一个返回 Promise 的函数 所有这些 Promis
  • javascript:获取带有单位的CSS prop值[重复]

    这个问题在这里已经有答案了 我的代码是这样的 image 1 position absolute top 3vw 我的尝试 http jsfiddle net z8k6t3fb 1 http jsfiddle net z8k6t3fb 1

随机推荐

  • 前导美元符号如何影响 Bash 中的单引号?

    我需要从 Bash CLI 将字符串作为其参数传递给程序 例如 program don t do this 该字符串可以包含任何字符 例如 等等 我不希望 Bash 做任何修改 所以我考虑使用单引号 但是以下方法不起作用 program d
  • Maven Javascript 压缩器

    我想知道如何使用 maven 压缩 javascript 文件 我已经访问过类似的网站http mojohaus org javascript maven tools guide webapp development html但没有解释实施
  • iPhone 企业部署:移动设备管理

    我在企业中阅读有关 iPhone 的资料 看到了一些有关移动设备管理服务器的内容 据我所知 有一些第 3 方 MDM 供应商 但 Apple 表示可以实施自己的供应商 iPhone 配置实用程序允许您为 MDM 设置服务器 URL 签入 U
  • PHP 正则表达式和 JavaScript 正则表达式之间的区别

    您好 我想在 spry java 脚本框架中使用下面的 php 正则表达式 但它们不适用于 spry 框架 并且 spry 不允许用户输入 1 d 2 x 600 x 6FF s x 600 x 6FF u 3 x 600 x 6FF d
  • 如何跟踪 Javascript 事件(堆栈跟踪)?

    在任何编程语言中 我都可以跟踪任何函数并知道哪个函数被其他函数调用 但在 Javascript 中 我不知道如何 因为代码不是我写的据我所知 Firebug 没有提供此功能 一个例子 我想显示单击 XYZ 元素时调用的每个函数的函数名称 并
  • 使用 Lambda 和递归函数调用了解 QTimer

    我有以下代码 void class Testfunc QTimer timer new QTimer QObject connect timer QTimer timeout this emit Log Time out TestFunc
  • 如何在 Twig 过滤器“替换”中使用变量

    从 php 的表单中移交一个数组 repl arr array serach string1 gt replace1 对于 Twig 模板 我想在每个替换过滤器中替换 Twig 变量中的字符串 如下所示 block replace repl
  • Excel 和 EPPlus .NET 库:高级下拉列表验证

    在 Epplus 中 当我们为 Excel 文件中的某些单元格创建下拉列表时 然后用户输入一个不属于列表的值 该单元格会显示一条消息 值必须与列出的项目之一匹配 除了此消息之外 是否可以阻止用户输入不属于下拉列表的值 提前致谢 我用下面的代
  • 使用陈述问题

    我有两个问题 1 是否应该始终在连接上使用 using 语句 那么 我会在连接上使用它 然后在连接内的阅读器上使用另一个吗 所以我会使用两个 using 语句 2 假设您在连接上使用 using 语句 并且在连接上返回了一个读取器 所以你有
  • Perl 中的核心、供应商和站点位置之间有什么区别?

    我最近在安装某些模块时遇到了一些麻烦 并惊讶地发现许多已安装的模块都有重复的安装和版本 尝试使用以下命令跟踪标准 如果有这样的东西 安装中的内容cpanm 我发现以下结果非常令人困惑 报告显示了这些位置 Using cpan V cpan
  • 开发过程中应该如何使用identifierForVendor?

    Apple 建议使用 UIDevice currentDevice identifierForVendor 每次在 iOS 模拟器中运行应用程序时 该值都会发生变化 我的应用程序中的初始功能要求我将设备识别为一种光身份验证形式 这使得开发变
  • django-tastypie 和多对多“通过”关系

    在 Django 和 Tastypie 中 我试图找出如何正确处理多对多 通过 关系 如下所示 https docs djangoproject com en dev topics db models extra fields on man
  • 在 AngularJS 中,我可以在 ngView 之外的 ngSwitch 中使用当前路由吗

    我正在尝试根据当前视图更改页眉 标头位于 ngView 之外 这是可能的还是我需要将标题放在视图中 我的代码看起来与此类似 div div div Welcome div div Our products div div Contact u
  • 用逗号分割字符串列表

    我想转换 60 78 70 77 80 74 90 75 100 74 110 75 in to 60 78 70 77 etc 我以为我可以用 for word in lines word word split newlist appen
  • Yahoo 和 MS 支持 Oauth 2.0 吗?以及有关 oAuth 2.0 的几个问题

    我有几个问题 yahoo 和 microsoft api 支持吗 oAuth 2 0 如果是的话主要是什么 应采取的安全措施 转移时得到照顾 oAuth 1 0 到 oAuth 2 0 Google API 支持 oAuth 2 0 但 他
  • 从文本文件中解析数据

    我有一个文本文件 其内容如下 ENTRY 01 ID 01 Data1 0 1834869385E 002 Data2 10 9598489301 Data3 0 1091356549E 001 Data4 715 然后是一个空行 并重复更
  • 使用折叠表达式打印所有带有换行符的可变参数

    C 17 折叠表达式的经典示例是打印所有参数 template
  • 确定Java平台的默认字符集

    我正在用 Java 编程 我的代码如下 byte b test getBytes 在 api 中指定 如果我们不指定字符编码 则采用默认的平台字符编码 默认平台字符编码 是什么意思 它是指 Java 编码还是操作系统编码 如果这意味着操作系
  • wxpython 3.0 破坏了旧应用程序? (区域设置错误)

    我有一个可以与旧版本的 wxpython 正常运行的应用程序 现在使用 wxpython 3 0 当尝试运行该应用程序时 出现以下错误 File C Python27 lib site packages wx 3 0 msw wx cont
  • 将背景图像设置为动态 svg 数据?

    最初我有一些内联 svg 它可以按我想要的方式工作