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