繁体   English   中英

无法使用d3.js更改字体大小

[英]Unable to change font size using d3.js

作为d3.js的新手,我试图编写一个简单的代码来计算数组中段落的字体大小。 这是我的代码:

<html>
<head>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
<script>
    d3.select('body')
      .selectAll('p')
      .data([5,10])
      .style("font-size", function(d) { return d + "px"; });
</script>
</head>
<body>
<p>para 1</p>
<p>para 2</p>
</body>
</html>

这似乎很简单,但是由于某些原因无法正常工作。 关于我要去哪里的任何帮助都将真正有帮助。

发生这种情况的原因是,在执行脚本之前,直到那时还没有创建<P>元素,因此只需在页面末尾包含Script,它就可以正常工作。

JSFiddle链接

该守则将是这样的。

<html>
<head>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
</head>
<body>
<p>para 1</p>
<p>para 2</p>
</body>

<script>
    d3.select('body')
      .selectAll('p')
      .data([5,10])
      .style("font-size", function(d) { return d + "px"; });
</script>
</html>

方法二

您还可以在onLoad事件中编写脚本,以便仅在创建DOM之后才执行脚本。

在纯JavaScript中,可以这样完成

<script>
window.onload=function(){

d3.select('body')
      .selectAll('p')
      .data([5,10])
      .style("font-size", function(d) { return d + "px"; });

}
</script>

或者,您可以使用jQuery(如果愿意),其示例代码将如下所示:

    <script>
      $(document).on('laod',funciton(){
       d3.select('body')
              .selectAll('p')
              .data([5,10])
              .style("font-size", function(d) { return d + "px"; });
    });</script>

我更喜欢直接按照本教程中的说明从数据生成HTML / SVG元素。

<html>
    <head>
    <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
    <script>
        d3.select('body')
            .data([5,10])
          .enter().append("p")
            .style("font-size", function(d) { return d + "px"; })
            .text("para");
    </script>
    </head>
    <body>
    </body>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM