Javascript D3可以';t将样式设置为appended对象
通常,当您在D3.js中附加一个对象,并希望定义一个特定的可视化(例如,显示在另一个对象顶部的信息框)时,您可以设置一个样式。就我而言,我正在尝试以下方法:Javascript D3可以';t将样式设置为appended对象,javascript,jsp,spring-mvc,d3.js,styles,Javascript,Jsp,Spring Mvc,D3.js,Styles,通常,当您在D3.js中附加一个对象,并希望定义一个特定的可视化(例如,显示在另一个对象顶部的信息框)时,您可以设置一个样式。就我而言,我正在尝试以下方法: ... .on("mouseover", function (d, i) { graph.append("div") .attr("class","info-box") // info-box is defined with position: absol
...
.on("mouseover", function (d, i) {
graph.append("div")
.attr("class","info-box")
// info-box is defined with position: absolute
.style("top", height - (yV * d))
.style("left", (xV * i))
.text("INFO")
}
...
因此,如果我在我用此代码定义的一个对象上进行鼠标悬停(假设它是一系列垂直条中的第二个对象),应该会出现一个包含以下代码的框:
<div class="info-box" style="top: 30; left: 10">
INFO
</div>
信息
问题是,出于某种原因,当代码生成框时,它没有设置我定义的样式,事实上,属性“style”根本没有出现,考虑到我希望这个框出现在我悬停的条的顶部,这是非常烦人的
这在我在SpringMVC中编写的代码中发生。更准确地说,我从一个接收两个参数的自定义标记生成javascript代码,然后它在jsp中“呈现”,并使用这些参数调用它。我不知道这是否有什么关系,但我很肯定有两件事:
您只需要添加单元,在本例中为“px”,以便设置这些css属性
.on("mouseover", function (d, i) {
graph.append("div")
.attr("class","info-box")
// info-box is defined with position: absolute
.style("top", (height - (yV * d)) + 'px')
.style("left", (xV * i) + 'px')
.text("INFO")
…我不知道我的原始代码在html中是如何工作的,而不是在jsp中,但是,嘿,最后它非常简单…很抱歉问了一些愚蠢的问题…但是我总是在没有定义px的情况下设置top和left属性。你可以在jQuery中使用px来完成它,这会为你做一些额外的解释,但不能使用d3。