为什么这个 JS 创建的 SVG 在 Chrome 中不起作用?

2024-05-19

考虑这个简单的 SVG SMIL 动画:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="-50 -50 100 100">
  <circle r="40" fill="red">
    <animate
      attributeType="CSS" begin="click"
      attributeName="fill" to="blue" dur="0.3s" fill="freeze"/>
  </circle>
</svg>

这在 Windows 上的 Chrome v18 中可以正常工作(对保持颜色的错误进行取模):
http://phrogz.net/svg/change-color-on-click-simple.svg http://phrogz.net/svg/change-color-on-click-simple.svg

当我生成<animate>使用 JavaScript 的元素,在 Firefox、Safari 和 Opera 中都可以正常工作,但在 Chrome 中则不行。在 Chrome 中,当我点击圆圈时没有任何反应。

<svg xmlns="http://www.w3.org/2000/svg" viewBox="-50 -50 100 100">
  <circle r="40" fill="red"/>
  <script>
    var c = document.querySelector('circle');
    createOn(c,'animate',{
      attributeType:'CSS', begin:'click',
      attributeName:'fill', to:'blue',
      dur:'0.3s', fill:'freeze'
    });
    function createOn(el,name,attrs){
      var e = el.appendChild(document.createElementNS(el.namespaceURI,name));
      for (var name in attrs) e.setAttribute(name,attrs[name]);
      return e;
    }
  </script>

请在此处查看此 JavaScript 版本:
http://phrogz.net/svg/change-color-on-click-simple-js.svg http://phrogz.net/svg/change-color-on-click-simple-js.svg

控制台中没有脚本错误。第一个示例的内容实际上是通过在加载第二个示例后从 Chrome 开发人员工具中选择“复制为 HTML”来生成的,因此我知道它正在生成正确的属性名称和值。这namespaceURI of the <animate>两者(SVG 命名空间)之间的元素是相同的,namespaceURI所有属性(null).

有没有办法让JS生成<animate>哪些元素可以在 Chrome 中使用?


如果我定义属性before附加动画,它似乎有效。

http://jsfiddle.net/VFUHk/ http://jsfiddle.net/VFUHk/

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

为什么这个 JS 创建的 SVG 在 Chrome 中不起作用? 的相关文章

  • 在 javascript/jquery 中将光标更改为等待

    当调用函数时 如何让光标更改为此加载图标以及如何将其更改回 javascript jquery 中的普通光标 在你的 jQuery 中使用 body css cursor progress 然后又恢复正常 body css cursor d
  • 如何在同一页面上使用AJAX处理多个表单

    我有一个表单 当我单击 提交 时 它就被提交了 然后该表单隐藏 操作页面的结果显示在 div 中 classname dig 它工作正常 但是当我添加另一个表单时 它停止正常工作并且所有表单同时提交 我如何更改我的代码 done click
  • 主干视图 DOM 元素已删除

    我一直在阅读有关 Backbone js 僵尸 或内存泄漏 问题的信息 基本上 当您不再需要该元素时 您必须从 DOM 中解除绑定并删除该元素 以确保所有事件也被删除 现在 我有一个包含几个容器的单页应用程序 div div div div
  • 了解设置 JQuery 变量

    了解设置 JQuery 变量 最近 我通过在 StackOverflow 上遇到的另一个问题寻找帮助 了解到如何设置 JQuery 变量 如下所示 您可以通过简单地调用变量来创建输入字段 并且锚变量似乎也定义了样式 var clicked
  • 从数据 URI 解码 QR 码

    我尝试从数据 uri 中解码二维码 var dataUri data image gif base64 R0lGODdh9gD2AIAAAAAAAP ywAAAAA9gD2AAAC decodeQrCode dataUri cb 我已经尝试
  • 每 3 秒重复一次动画

    我正在使用 WOW js 和 animate css 现在我正在将 CSS 运行到 Infinite 我想知道如何让我的课程运行 3 秒停止并再次开始到无限 My html img src images fork png class for
  • 不和谐机器人 |不和谐.js |类型错误:无法读取未定义的属性“长度”

    我正在制作一个 Discord 机器人 并且正在使用 CodeLyon 的视频作为参考 该错误位于我的 message js 文件中 该文件包含以下内容 require dotenv config create cooldowns map
  • Web 串行 API - 未捕获(承诺中)DOMException:无法打开串行端口/所需成员 baudRate 未定义

    下面的代码可以在我的 Xubuntu 机器上运行 但现在我在 Kubuntu 上 它不再工作了 它不会打开端口 Arduino IDE 工作正常 可以向开发板写入代码 并且我可以在 Chrome 中选择设备 Arduino Uno 但当我尝
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • Node.js:如何在检索数据(块)时关闭响应/请求

    我正在用 node js 构建一个应用程序 它加载多个页面并分析内容 因为 node js 发送块 所以我可以分析这些块 如果一个块包含例如索引 nofollow 我想关闭该连接并继续其余部分 var host example com to
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • 在requestAnimationFrame中使用clearRect不显示动画

    我正在尝试在 HTML5 画布上做一个简单的 javascript 动画 现在我的画布是分层的 这样当我收到鼠标事件时 背景层不会改变 但带有头像的顶层会移动 如果我使用 requestAnimationFrame 并且不清除屏幕 我会看到
  • 使用 KnockoutJs 映射插件进行递归模板化

    我正在尝试使用以下方法在树上进行递归模板化ko映射 插入 http knockoutjs com documentation plugins mapping html 但我无法渲染它 除非我定义separate每个级别的模板 在以下情况下
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • 在 webpack 2.x 中使用 autoprefixer 和 postcss

    如何使用autoprefixer使用 webpack 2 x 以前 它曾经是这样的 module loaders test scss loader style css sass postcss postcss gt return autop
  • 提交表单并重定向页面

    我在 SO 上看到了很多与此相关的其他问题 但没有一个对我有用 我正在尝试提交POST表单 然后将用户重定向到另一个页面 但我无法同时实现这两种情况 我可以获取重定向或帖子 但不能同时获取两者 这是我现在所拥有的
  • Grails 在 javascript 内的 GSP 站点中使用 grails var

    我有一个在 GSP 文件中的 javascript 代码中使用 grails 变量值的问题 例如 我有一个会话值session getAttribute selectedValue 我想在 javascript 代码部分使用这个值 我现在的
  • 如何在类似控制台的环境中运行 JavaScript?

    我正在尝试遵循这里的示例 http eloquentjavascript net chapter2 html http eloquentjavascript net chapter2 html and print blah 在浏览器中运行时
  • 为什么我不能在 AngularJS 中使用 data-* 作为指令的属性名称?

    On the t他的笨蛋 http plnkr co edit l3KoY3 p preview您可以注意到属性名称模式的奇怪行为data 在指令中 电话 Test of data named attribute br
  • 如何从图像输入中获取 xy 坐标?

    我有一个输入设置为图像类型

随机推荐

  • Python:如何下载 blob url 视频?

    我想使用 Python 脚本从网站下载视频 但是该视频由如下 Blob URL 提供
  • 在 Windows 8 应用程序中为 DispatcherTimer 的 Tick 事件定义事件处理程序

    我正在 Windows 8 Visual studio 11 中开发一个应用程序 我想为 DispatcherTimer 实例定义一个事件处理程序 如下所示 public sealed partial class BlankPage Pag
  • 在 python 中使用 pandas 计算行的出现次数

    我有一个包含数千行和 4 列的 pandas 数据框 IE A B C D 1 1 2 0 3 3 2 1 3 1 1 0 有没有办法统计某一行出现了多少次 例如 可以找到多少次 3 1 1 0 并返回这些行的索引 如果你只寻找一行 那么我
  • 导出 .jar 时出现 FileNotFoundException

    在我的客户端 服务器应用程序中 我需要发送一些文件 txt doc等 从客户端到服务器 当我在 Eclipse 中运行代码时 它可以工作 但是当我导出 Applet 的签名 JAR 时 它不能工作 它抛出一个FileNotFoundExce
  • 我们如何更改数据表中搜索字段的宽度

    我可以更改 dataTables 中搜索文本字段的宽度吗 我现在正在编写以下代码 但它不起作用 example dataTable columnFilter sPlaceHolder head before aoColumns type t
  • 为所有子文件夹设置 git 配置值

    我知道可以设置每个存储库的配置来覆盖用户级配置 即 path to my repo gitconfig覆盖 gitconfig 是否可以设置 git 配置来覆盖给定文件夹的所有子文件夹的用户级设置 即 我有 topLevelFolder1
  • iOS 13 beta 外部屏幕上的 OverscanCompensation

    我正在测试一个应用程序的测试版 但遇到了外部屏幕的问题 我们看到应用程序周围有黑色边框 我们之前可以通过设置来纠正它overscanCompensation to none但在 iOS 13 中 该设置根本没有任何效果 我们曾经看到一个错误
  • 在没有匹配器的情况下如何跳过specs2中的测试?

    我正在尝试使用 scala 中的 specs2 测试一些与数据库相关的内容 目标是测试 db running 然后执行测试 我发现如果数据库关闭 我可以使用 Matcher 类中的 orSkip 问题是 我正在获取一个匹配条件的输出 作为
  • `dplyr::_join` 函数的命名向量“by”参数[重复]

    这个问题在这里已经有答案了 我正在写一个函数dplyr join两个数据框by不同的列 第一个数据帧的列名称动态指定为函数参数 我相信我需要使用rlang准引用 元编程 但未能找到可行的解决方案 我很感激任何建议 library dplyr
  • Qt - 获取互联网上托管的网页的源代码(HTML 代码)

    我想获取网页的源代码 HTML 例如StackOverflow的主页 这是我到目前为止编写的代码 QNetworkAccessManager manager QNetworkReply response manager get QNetwo
  • FQL 返回空集?

    我正在尝试涉足 Facebook API 和 FQL 我的查询返回一个空集 并且我不确定要更改哪些权限 几年前 当 API 首次出现时 我就开始使用一个旧应用程序 我正在尝试使用该应用程序和fql query 测试控制台 http deve
  • Docker 教程入门第 4 部分连接被拒绝

    我不明白我错过了什么 docker compose yml version 3 services web replace username repo tag with your name and image details image sv
  • 插入具有只读主键列的表

    我正在使用一个使用 sql server 数据库的应用程序 我试图在表中插入一行 如下所示 该表有一个主键 prodNum 这是自动生成的密钥 当我尝试向表中插入一行时 如下所示 在行中intResult oSglProdTableAdap
  • PHP:将多字节字符串(单词)拆分为单独的字符

    尝试使用 mb split 将这个字符串 主楼怎么走 分割成单独的字符 我需要一个数组 但没有成功 有什么建议吗 谢谢你 例如 尝试使用带有 u 选项的正则表达式 chars preg split u string 1 PREG SPLIT
  • .NET EXE 内存占用

    即使是一个简单的Notepad http en wikipedia org wiki Notepad 28software 29C 中的应用程序消耗兆字节的 RAM 如任务管理器中所示 最小化应用程序时 任务管理器中的内存大小会显着下降 并
  • 谷歌地图 API 没有密钥?

    如何在没有密钥的情况下使用 Google Maps v3 API 我在里面见过这个例子 http www birdtheme org useful v3largemap html但无法弄清楚具体是什么导致它不出错 编辑 如果有人建议 Sta
  • Jinja2 嵌套循环计数器

    set cnt 0 for room in rooms for bed in room set cnt cnt 1 endfor cnt endfor 假设我们有一个嵌套循环 打印的 cnt 将始终为 0 因为这是我们进入第一个 for 循
  • 在Java中使用没有密码的p12文件

    尽我所能 我不知道如何使用 p12Java 中没有密码的文件 我尝试过设置javax net ssl keyStorePassword to 但无论我做什么 我都会收到以下 SSL 错误 HTTP 传输错误 javax net ssl SS
  • Xcode 存档上传失败并出现错误

    我正在尝试从 xCode 将新版本上传到 iTunesConnect 但每次我都会遇到此问题 问题是什么 我该如何解决这个问题 最近 我开始在上传过程中遇到问题 Xcode 经常卡住 最终会因您看到的第二个错误而失败 受够了一段时间后 我转
  • 为什么这个 JS 创建的 SVG 在 Chrome 中不起作用?

    考虑这个简单的 SVG SMIL 动画