Javascript 代码不工作
请查找要生成的代码Javascript 代码不工作,javascript,d3.js,Javascript,D3.js,请查找要生成的代码 <style> text.shadow { stroke: #fff; stroke-width: 2.5px; opacity: 0.9; } text.shadow{ 冲程:#fff; 笔划宽度:2.5px; 不透明度:0.9; } 我附上了代码,该代码应显示您需要使用正确的数据。您具有以下功能: function mousemove() { var x0 = x.invert(d3.mouse(this)[0]),
<style>
text.shadow {
stroke: #fff;
stroke-width: 2.5px;
opacity: 0.9;
}
text.shadow{
冲程:#fff;
笔划宽度:2.5px;
不透明度:0.9;
}
我附上了代码,该代码应显示您需要使用正确的数据。您具有以下功能:
function mousemove() {
var x0 = x.invert(d3.mouse(this)[0]),
i = bisectDate(data, x0, 1),
d0 = newDataArray[i - 1],
d1 = newDataArray[i],
d = x0 - d0.i > d1.i - x0 ? d1 : d0;
focus.attr("transform", "translate(" + x(d.i) + "," + y(d.fit) + ")");
focus.select("text").text(Math.floor(d.fit));
}
function mousemove() {
var x0 = x.invert(d3.mouse(this)[0]),
i = bisectDate(data, x0, 1),
d0 = newDataArray[i-1],
d1 = newDataArray[i],
d = x0 - d0.i > d1.i - x0 ? d1 : d0;
focus.attr("transform", "translate(" + x(d.i) + "," + y(d.fit) + ")");
focus.select("text").text(Math.floor(d.fit));
}
function mousemove() {
var x0 = x.invert(d3.mouse(this)[0]),
i = bisectDate(newDataArray, x0, 1),
d0 = newDataArray[i - 1],
d1 = newDataArray[i],
d = x0 - d0.fit > d1.fit - x0 ? d1 : d0;
focus.attr("transform", "translate(" + x(d.upr) + "," + y(d.fit) + ")");
focus.select("text").text(Math.floor(d.fit));
}
在第3行中,您正在使用数据
。数据在哪里?它应该是newDataArray
对吗
这也应该出现在控制台日志中,您在开发时是否阅读了控制台日志
对,你有这个功能:
function mousemove() {
var x0 = x.invert(d3.mouse(this)[0]),
i = bisectDate(data, x0, 1),
d0 = newDataArray[i - 1],
d1 = newDataArray[i],
d = x0 - d0.i > d1.i - x0 ? d1 : d0;
focus.attr("transform", "translate(" + x(d.i) + "," + y(d.fit) + ")");
focus.select("text").text(Math.floor(d.fit));
}
function mousemove() {
var x0 = x.invert(d3.mouse(this)[0]),
i = bisectDate(data, x0, 1),
d0 = newDataArray[i-1],
d1 = newDataArray[i],
d = x0 - d0.i > d1.i - x0 ? d1 : d0;
focus.attr("transform", "translate(" + x(d.i) + "," + y(d.fit) + ")");
focus.select("text").text(Math.floor(d.fit));
}
function mousemove() {
var x0 = x.invert(d3.mouse(this)[0]),
i = bisectDate(newDataArray, x0, 1),
d0 = newDataArray[i - 1],
d1 = newDataArray[i],
d = x0 - d0.fit > d1.fit - x0 ? d1 : d0;
focus.attr("transform", "translate(" + x(d.upr) + "," + y(d.fit) + ")");
focus.select("text").text(Math.floor(d.fit));
}
这根本不会运行。您正在将d.i
和d.fit
传递到x
和y
轴。什么是d.i?它不存在于您的数据中
我把这把小提琴放在一起:
您的mousemove
功能无法正常工作,因为您无法正确转换焦点(圆圈)。什么idd.i
?你需要做的是传递你正在使用的y轴,所以在这种情况下,d.fit如下:
d = x0 - d0.fit > d1.fit - x0 ? d1 : d0;
然后你把它翻译成,d.upr
在x和d.fit
在y。完整的鼠标移动功能:
function mousemove() {
var x0 = x.invert(d3.mouse(this)[0]),
i = bisectDate(data, x0, 1),
d0 = newDataArray[i - 1],
d1 = newDataArray[i],
d = x0 - d0.i > d1.i - x0 ? d1 : d0;
focus.attr("transform", "translate(" + x(d.i) + "," + y(d.fit) + ")");
focus.select("text").text(Math.floor(d.fit));
}
function mousemove() {
var x0 = x.invert(d3.mouse(this)[0]),
i = bisectDate(data, x0, 1),
d0 = newDataArray[i-1],
d1 = newDataArray[i],
d = x0 - d0.i > d1.i - x0 ? d1 : d0;
focus.attr("transform", "translate(" + x(d.i) + "," + y(d.fit) + ")");
focus.select("text").text(Math.floor(d.fit));
}
function mousemove() {
var x0 = x.invert(d3.mouse(this)[0]),
i = bisectDate(newDataArray, x0, 1),
d0 = newDataArray[i - 1],
d1 = newDataArray[i],
d = x0 - d0.fit > d1.fit - x0 ? d1 : d0;
focus.attr("transform", "translate(" + x(d.upr) + "," + y(d.fit) + ")");
focus.select("text").text(Math.floor(d.fit));
}
更新小提琴:
我想你从这里得到了一个例子:
这是一个如何工作的细分。在对你的观点做更多的事情之前,先阅读并理解它在做什么。最好能理解这一切,否则你就会陷入困境。提示:使用控制台日志 你能检查一下你的密码吗?它有语法问题,您正在使用未在给定代码中定义的变量,例如newDataArray
?在SO上发布时,请尝试发布可由其他人运行的代码以查找错误。如果你喜欢附加css,我做了一个小动作,但它需要样式。现在开始工作:还有其他css吗?你刚刚用css覆盖了所有代码。请给你的问题一个描述性标题。但是这仍然不起作用。我会试着找出问题所在,这上面还有css吗?我已经编辑了我的问题,你的代码中有一些错误,我不知道你为什么把它们放在那里。你只是在模仿一个例子吗?你们是通过控制台调试的吗?很明显,它并没有记录错误,因为我给它传递了一个实际值。我通过了“I”,也就是1,所以它总是1。这说明了,不同的问题。此外,您还需要更新问题中的代码。您已经覆盖了它。您所创建的只是一个圆。您没有附加任何值