gpt4 book ai didi

javascript - d3.js - 需要帮助调试 Chrome、Safari 和 Firefox 中的差异

转载 作者:行者123 更新时间:2023-11-30 10:36:51 25 4
gpt4 key购买 nike

我正在试验这个 d3 demo我无法调试为什么我在 Chrome 与 Safari/FireFox 中遇到不同的行为。如果我运行下面的完整代码,它可以在 Chrome 中运行,但不能在 Safari/Firefox 中运行。我似乎已将问题隔离到以下几点:

如果我改变这一行:

var circles = chart.select("#points").selectAll("circle")

为此:

var circles = chart.selectAll("circle")

它适用于 Safari/Firefox/Chrome,但我想了解发生了什么以及为什么下面的代码不起作用。任何见解将不胜感激。

完整代码

 <svg>
<g id="chart">
<g id="bg">
</g>
<g id="countries">
</g>
<g id="points">
</g>
</g>
</svg>


<script type="text/javascript">

d3.json("costofliving.json", function(col) {

var cx = 200;
var cy = 132;

var cw = 400;
var ch = 400;

var svg = d3.select("svg");
var nticks = 14;

var price_min = 0;
var price_max = d3.max(col, function(d) {return d.price});

var rent_min = 0;
var rent_max = d3.max(col, function(d) {return d.rent});

var price_scale = d3.scale.linear()
.domain([price_min, price_max])
.range([ch, 0]);
var rent_scale = d3.scale.linear()
.domain([rent_min, rent_max])
.range([0, cw]);

var price_layout = d3.layout.histogram()
.value(function(d) { return d.price })
.range([0, price_max])
.bins(nticks);

var rent_layout = d3.layout.histogram()
.value(function(d) { return d.rent })
.range([0, rent_max])
.bins(nticks);

var chart = svg.append("g")
.attr("transform", "translate(" + [cx, cy] + ")");

chart.append("g")
.attr("id", "countries")
.style("opacity", 0);

chart.append("g")
.attr("id", "points")

var circles = chart.select("#points").selectAll("circle")
.data(col);

circles.enter()
.append("circle")

circles.attr({
r: 6,
cx: function(d,i) {
return rent_scale(d.rent);
},
cy: function(d,i) {
return price_scale(d.price);
}
})
});
</script>

最佳答案

您需要为 Firefox 中的任何 svg 元素设置 widthheight。根据W3C Spec ,svg 元素将默认使用“100%”,但我的 Firefox 17(可能还有其他浏览器)可能还没有那样实现它。

在您的代码中设置一些绝对值时,它会按预期工作。

<svg width="600" height="600">

关于javascript - d3.js - 需要帮助调试 Chrome、Safari 和 Firefox 中的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13527125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com