Javascript 在打开浏览器检查窗口或调整浏览器大小之前,动态图div不可见

Javascript 在打开浏览器检查窗口或调整浏览器大小之前,动态图div不可见,javascript,jquery,dygraphs,Javascript,Jquery,Dygraphs,这已经困扰了我一个星期了,所以我不得不这么做。(请原谅URL,它是一个开发服务器)。 当我点击照片时,应该会出现带有折线图的弹出窗口,但事实上折线图是不可见的。只有在调整窗口大小或打开浏览器检查窗口后,它才可见 我怎样才能解决这个问题 此方法无效 var graph=新的动态图(document.getElementById(“graphPanel”),“temperatures.csv”{ 动画缩放:真 }); $(文档).ready(函数(){ 图.调整大小(800500) }); 这是一

这已经困扰了我一个星期了,所以我不得不这么做。(请原谅URL,它是一个开发服务器)。

当我点击照片时,应该会出现带有折线图的弹出窗口,但事实上折线图是不可见的。只有在调整窗口大小或打开浏览器检查窗口后,它才可见

我怎样才能解决这个问题

此方法无效

var graph=新的动态图(document.getElementById(“graphPanel”),“temperatures.csv”{
动画缩放:真
});
$(文档).ready(函数(){
图.调整大小(800500)
});

这是一个经常出现的问题。如果一个
是不可见的,那么它没有任何明确定义的高度或宽度。因此,在其中呈现图表没有任何用处(它的高度为零)。动态图表无法知道图表
已可见。这实际上是DOM事件API中的一个空白。谷歌地图等其他图书馆也有类似的问题

解决办法包括:

  • 当弹出窗口出现时,您可以调用
    .resize()
    ,而无需任何参数来强制重画
  • 您可以在弹出窗口出现时而不是页面加载时创建图表。这样,在呈现图表时,图表
    将有一个大小
  • 可以在动态图构造函数中或作为图表上的样式显式指定高度和宽度
 // These will be zero if the dygraph's div is hidden. In that case,
  // use the user-specified attributes if present. If not, use zero
  // and assume the user will call resize to fix things later.
  this.width_ = div.clientWidth || attrs.width || 440;
  this.height_ = div.clientHeight || attrs.height ||320;