Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在NVD3中全局更改转换持续时间?_Javascript_D3.js_Phantomjs_Nvd3.js - Fatal编程技术网

Javascript 如何在NVD3中全局更改转换持续时间?

Javascript 如何在NVD3中全局更改转换持续时间?,javascript,d3.js,phantomjs,nvd3.js,Javascript,D3.js,Phantomjs,Nvd3.js,我想把NVD3图表转换成PDF文档。这些图表通常显示在浏览器中(我不能为每个图表制作一个单独的实例用于打印和显示),我使用PhantomJS完成了所有工作,但我有一个问题,我似乎找不到一个好的解决方案 所有NVD3型号都使用转换,但只有部分转换受transitionDuration选项的影响。由于这些转换,我现在必须在PhantomJS中“捕获”屏幕之前使用一个超时来生成PDF,否则在转换过程中会生成文档图片和图表。显然我不想再等了 PhantomJS使用printmedia type来渲染PD

我想把NVD3图表转换成PDF文档。这些图表通常显示在浏览器中(我不能为每个图表制作一个单独的实例用于打印和显示),我使用PhantomJS完成了所有工作,但我有一个问题,我似乎找不到一个好的解决方案

所有NVD3型号都使用转换,但只有部分转换受
transitionDuration
选项的影响。由于这些转换,我现在必须在PhantomJS中“捕获”屏幕之前使用一个超时来生成PDF,否则在转换过程中会生成文档图片和图表。显然我不想再等了

PhantomJS使用
print
media type来渲染PDF,因此禁用任何CSS3动画(使用media query)都非常容易,但我找不到任何方法关闭D3转换(换句话说,强制默认转换持续时间为0)。我可以检测JavaScript中的
print
媒体类型,但找不到一种全局关闭D3/NVD3中动画的好方法。。。这就是我所拥有的,它实际上没有什么作用:


我想不出比修改nvd3源代码更好的解决方案。如果你替换了

    transitionDuration = 250
为了


在nv.d3.js中,它应该可以工作。

从NVD3 1.7.1开始,您可以使用持续时间选项:

chart.duration(0);

恐怕你必须修改NVD3的源代码来删除转换。太糟糕了,我希望至少D3本身能提供某种方式来禁用动画。。。
    transitionDuration = 0
chart.duration(0);