javascript - D3 Javascript - 示例 SVG 在 HTML 中声明,无法嵌入 HTML 标签

标签 javascript d3.js svg

Stackoverflow 世界。需要一些指导。我正在开发一个 D3 JS 脚本,它将嵌入到一个打包的应用程序中,该应用程序不允许在编辑器中使用任何 native HTML 代码 - 仅限 JS/JQ。我在 Bostock 的 Blocks ( https://bl.ocks.org/mbostock/4063550 ) 上发现了一个很棒的可视化(请查看示例以了解完整的单个 HTML 页面用法 - 我使用内联 JSON 对其进行了修改以进行测试)。在调整代码以增强入站 JSON block 之后,我注意到在代码的头部,初始 SVG 在 Javascript block 之前被调用。这对我不起作用。无论我尝试什么,我似乎都无法使实例化 SVG 的典型方法发挥作用。以下是首次引用 SVG 的方式:

{<svg width="960" height="1060"></svg>}

与许多其他 block 示例不同,稍后可以直接操作 SVG

var svg = d3.select("svg"),
width = +svg.attr("width"),
height = +svg.attr("height"),
g = svg.append("g").attr("transform", "translate(" + (width / 2 + 40) + "," + (height / 2 + 90) + ")");

我发现的所有示例都是这样的(无论我如何尝试匹配它(当然删除“svg”标签之后,它都不起作用。

)

这是我多次看到的方式,并且我在我的非工作 JS Fiddle 中应用了该框架。:

    var svg = d3.select("body").append("svg")
    .attr("width", width)
    .attr("height", height)
  .append("g")
    .attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");

我尝试通过 D3 重新创建“svg”标签,但它似乎从未起作用。

这是一个 JSFiddle,它按照编写的方式工作(带有“svg”html 标签):

https://jsfiddle.net/LtL6yu5a/4/

这是一个 JSFiddle,它像我需要的那样存在(但不工作):

https://jsfiddle.net/bhj9gds1/

提示、指示,任何事情都会有帮助。对我来说,这个问题似乎与组或“g”项有关。

最佳答案

它当前不起作用的原因是您的代码中没有声明 g 并且稍后会引用它。

相反,您可以简单地这样做:

//declare width and height for your svg
var width = 960
var height = 1000;

//append a svg element to the body with the width and height declared above
var svg = d3.select("body").append("svg")
  .attr("width", width)
  .attr("height", height);

//append g element to svg and set it equal to a var called "g"
var g = svg.append("g").attr("transform", "translate(" + (width / 2 + 40) + "," + (height / 2 + 90) + ")");

JSFiddle - https://jsfiddle.net/0uxeywn5/

关于javascript - D3 Javascript - 示例 SVG 在 HTML 中声明,无法嵌入 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43059636/

相关文章:

javascript - 有没有一种简单的方法可以用包含从 A 到 Z 的 ID 和名称的对象填充数组?

javascript - 离线读取本地文件夹中的所有文件,无需使用ActiveXObject或php

javascript - 将 JSON 值动态传递给另一个模板

php - 网络应用程序 : How to make Android Phones compress video before uploading?

javascript - D3 - x 轴的标签是链接

android - 海量矢量素材导入Android Studio

html - 缩放 SVG 以适合 div 内部

jquery - 无法使用 Wicked PDF 渲染图表

javascript - 如何在d3js中垂直树

google-chrome - Chrome 中的 SVG 混合模式错误