TECHTOGOU

javascript - 当包含在基于 jQuery 的选项卡中时,Google Chart 加载量非常小

coder 2024-05-16 原文

我正在使用 Google 的 line chart几乎与演示完全一样 - 只有数据发生了变化 - 在 this jQuery tab plugin 内部没有修改。也许有 50% 的时间,图表将以 400x200 加载,即使它已被指定为以 700x250 加载。包含的 div 将具有适当的宽度和高度,但 API 呈现的图表将以 400x200 加载到其中。

我怀疑这是因为当 API 尝试呈现时未显示选项卡。正因为如此,它会尝试以它认为是 null 的内容进行渲染,从而迫使自己采用最小的默认分辨率。

我的想法是,如果图表的显示可以延迟到单击适当的选项卡时,就可以解决问题。可悲的是,我不知道该怎么做,我的研究也没有成果。我能找到的最接近的是 this thread ,但我没有在那里找到任何真正的答案。

如果您有任何建议,我将不胜感激,如有必要,我很乐意跟进更多信息。

最佳答案

在隐藏的 div 中呈现图表(这是选项卡 UI 中未选择的选项卡最有可能的)会扰乱 Visualization API 检测维度的能力,因此您需要执行以下两种操作之一:要么呈现所有图表在实例化选项卡之前,或者(正如您所了解的那样)绑定(bind)事件监听器以在首次打开选项卡时绘制图表。在图表的选项中设置高度和宽度不足以解决所有浏览器中的问题。

我浏览了 easytabs 文档,看起来你应该能够做这样的事情:

// draw chart(s) in your default open tab

// track which tabs you've drawn charts in
var chartsDrawn = {
    tab1: true,
    tab2: false,
    tab3: false
    // etc
};

$('#tab-container').bind('easytabs:after', function (e) {
    if (e.tab == 'tab-2' && !chartsDrawn.tab2) {
        // draw chart(s) in tab 2
        chartsDrawn.tab2 = true;
    }
    else if (e.tab == 'tab-3' && !chartsDrawn.tab3) {
        // draw chart(s) in tab 3
        chartsDrawn.tab3 = true;
    }
    // etc
});

关于javascript - 当包含在基于 jQuery 的选项卡中时,Google Chart 加载量非常小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18564410/

有关javascript - 当包含在基于 jQuery 的选项卡中时,Google Chart 加载量非常小的更多相关文章

  1. javascript - AngularJS $promise then() 数据未定义 - 2

    我正在尝试将数据分配给$scope变量。在我的$promise.then()函数内它显示正确但在函数外它显示为未定义。以下是我的Controller代码:angular.module('testSiteApp').controller('TestController',function($scope,Tests){$scope.test=Tests.get({id:1});$scope.test.$promise.then(function(data){$scope.tasks=data.tasks;console.log($scope.tasks);}

  2. javascript - 使用 dc.js 按条值对条形图中的条进行排序(排序) - 2

    如何根据维度的计算值而不是维度本身的名称对dc.js示例中的x轴(维度)进行排序?例如,考虑用于有序条形图的dc.js示例:https://github.com/dc-js/dc.js/blob/master/web/examples/ord.html如何按水果数量的降序对x轴进行排序?这是我尝试过的:(jsfiddle:http://jsfiddle.net/gautam/re9r9kk7/)varcounts=[{name:"apple",cnt:10},{name:"orange",cnt:15},{name:"banana",cn

  3. javascript - dropzone.js 以编程方式不起作用 - 2

    我正在尝试以编程方式创建拖放区,但它不起作用。HTML代码:<divclass="content-wrap"><divclass="row"><scripttype="text/javascript">$(function(){$("div#myDropZone").dropzone({url:"/file-upload"});});</script><divclass="col-sm-12"><divclass="n

  4. javascript - 如何向最终用户隐藏 REST API Url? - 2

    是否可以隐藏我通过AJAX用来填充页面数据的RESTURL?我不希望其他人从我的RESTAPI获取和使用,但需要使用它来显示我网站中的内容。如何向最终用户隐藏我的RESTAPIURL? 最佳答案 不可能在JavaScript中对最终用户隐藏URL。他们只需在Chrome中打开网络面板,或打开Fiddler即可查看。在您的特定情况下,您可以向用户隐藏URL的唯一真正方法是从您的服务器端代码代理对您的API的REST调用。如果您必须使用JavaScript,您始终可以创建和使用APIKey,并简单地监控它们的使用情况并终止占用过多带宽的

  5. javascript - 如何通过 Internet Explorer 访问网络摄像头(11)? - 2

    关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion上下文:我正在构建一个离线网站(html5、css、js),我想通过IE(11)调用它。为了拍摄/保存照片,我需要访问网络摄像头。方法:我读到IE不支持getUserMedia;唯一的方法是使用闪光灯。问题:是否只有使用flash才能通过IE访问网络摄像头?如果是,请推荐一个例子。非常感谢您的意见。

  6. javascript - 为什么 !== ""不等于 !== null - 2

    最近在JavaScript中养成了使用的习惯if(data!=="")检查数据是否为空||未定义||空白字符串。当我尝试使用if(data!==null)//workhereResharper向我抛出一个可怕的错误,说"qualifiercanbenullorundefined"我添加了一个jFiddle只是为了澄清:JsFiddle我的问题是:这是ReSharper错误还是背后有什么原因? 最佳答案 首先,你的习惯是错误的。使用:if(data!=="")只会检查空字符串。如果dat

  7. javascript - 在 Bootstrap Validator Form 中停止默认表单提交 - 2

    我已经看到这个问题问过几次了,但它们似乎并不适用于我的情况。在验证测试之前提交我的表单。形式:<formaccept-charset="UTF-8"action="/user/fact"data-bv-submitbuttons="button[type='submit']"data-remote="true"data-toggle="validator"id="user_fact_form"method="post"role="form"

  8. javascript - 如何使用 javascript/jQuery/ajax 打印不同的页面? - 2

    使用以下代码显示打印对话框并成功打印页面,但是如何在单击同一按钮后打印不同的页面?不同的页面名称是:letterprint.php<divclass="below_movie_left"id="printableArea">Myprintingcontents</div><inputtype="button"class="submit_button"onclick="printDiv('printableArea')"value="Print"s

  9. javascript - 使用 javascript 按 id 对列表进行排序 - 2

    这个问题在这里已经有了答案:Sortinganarrayofobjectsbypropertyvalues(35个答案)关闭8年前。我正在iOS上制作一个phonegap应用程序,它需要按时间对列表进行排序我尝试将时间添加到每个li项目的id,然后根据id排序<ulid="test"><liid="4112">blub</li><liid="1422">blaaah</li><liid="6640">hmmmm</li><liid=&

  10. javascript - Highcharts饼图动态改变大小 - 2

    我在highcharts中创建的饼图出现问题。根据数据标签的位置,实际图表会增大或缩小。我们需要饼图保持相同大小,那么有没有办法保持饼图大小不变并强制标签适合它,或者我只需要将标签放在每个切片内? 最佳答案 您必须为饼图设置固定的大小。可以是百分比或像素值。例如:plotOptions:{pie:{size:100}},从APIhttp://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts

随机推荐

  1. javascript - 使用 dc.js 按条值对条形图中的条进行排序(排序) - 2

    如何根据维度的计算值而不是维度本身的名称对dc.js示例中的x轴(维度)进行排序?例如,考虑用于有序条形图的dc.js示例:https://github.com/dc-js/dc.js/blob/master/web/examples/ord.html如何按水果数量的降序对x轴进行排序?这是我尝试过的:(jsfiddle:http://jsfiddle.net/gautam/re9r9kk7/)varcounts=[{name:"apple",cnt:10},{name:"orange",cnt:15},{name:"banana",cn

  2. javascript - dropzone.js 以编程方式不起作用 - 2

    我正在尝试以编程方式创建拖放区,但它不起作用。HTML代码:<divclass="content-wrap"><divclass="row"><scripttype="text/javascript">$(function(){$("div#myDropZone").dropzone({url:"/file-upload"});});</script><divclass="col-sm-12"><divclass="n

  3. javascript - 如何向最终用户隐藏 REST API Url? - 2

    是否可以隐藏我通过AJAX用来填充页面数据的RESTURL?我不希望其他人从我的RESTAPI获取和使用,但需要使用它来显示我网站中的内容。如何向最终用户隐藏我的RESTAPIURL? 最佳答案 不可能在JavaScript中对最终用户隐藏URL。他们只需在Chrome中打开网络面板,或打开Fiddler即可查看。在您的特定情况下,您可以向用户隐藏URL的唯一真正方法是从您的服务器端代码代理对您的API的REST调用。如果您必须使用JavaScript,您始终可以创建和使用APIKey,并简单地监控它们的使用情况并终止占用过多带宽的

  4. javascript - 如何通过 Internet Explorer 访问网络摄像头(11)? - 2

    关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion上下文:我正在构建一个离线网站(html5、css、js),我想通过IE(11)调用它。为了拍摄/保存照片,我需要访问网络摄像头。方法:我读到IE不支持getUserMedia;唯一的方法是使用闪光灯。问题:是否只有使用flash才能通过IE访问网络摄像头?如果是,请推荐一个例子。非常感谢您的意见。

  5. javascript - 为什么 !== ""不等于 !== null - 2

    最近在JavaScript中养成了使用的习惯if(data!=="")检查数据是否为空||未定义||空白字符串。当我尝试使用if(data!==null)//workhereResharper向我抛出一个可怕的错误,说"qualifiercanbenullorundefined"我添加了一个jFiddle只是为了澄清:JsFiddle我的问题是:这是ReSharper错误还是背后有什么原因? 最佳答案 首先,你的习惯是错误的。使用:if(data!=="")只会检查空字符串。如果dat

  6. javascript - 在 Bootstrap Validator Form 中停止默认表单提交 - 2

    我已经看到这个问题问过几次了,但它们似乎并不适用于我的情况。在验证测试之前提交我的表单。形式:<formaccept-charset="UTF-8"action="/user/fact"data-bv-submitbuttons="button[type='submit']"data-remote="true"data-toggle="validator"id="user_fact_form"method="post"role="form"

  7. javascript - 如何使用 javascript/jQuery/ajax 打印不同的页面? - 2

    使用以下代码显示打印对话框并成功打印页面,但是如何在单击同一按钮后打印不同的页面?不同的页面名称是:letterprint.php<divclass="below_movie_left"id="printableArea">Myprintingcontents</div><inputtype="button"class="submit_button"onclick="printDiv('printableArea')"value="Print"s

  8. javascript - 使用 javascript 按 id 对列表进行排序 - 2

    这个问题在这里已经有了答案:Sortinganarrayofobjectsbypropertyvalues(35个答案)关闭8年前。我正在iOS上制作一个phonegap应用程序,它需要按时间对列表进行排序我尝试将时间添加到每个li项目的id,然后根据id排序<ulid="test"><liid="4112">blub</li><liid="1422">blaaah</li><liid="6640">hmmmm</li><liid=&

  9. javascript - Highcharts饼图动态改变大小 - 2

    我在highcharts中创建的饼图出现问题。根据数据标签的位置,实际图表会增大或缩小。我们需要饼图保持相同大小,那么有没有办法保持饼图大小不变并强制标签适合它,或者我只需要将标签放在每个切片内? 最佳答案 您必须为饼图设置固定的大小。可以是百分比或像素值。例如:plotOptions:{pie:{size:100}},从APIhttp://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts

  10. javascript - 无法直接在 ng-template 中访问范围变量 - 2

    所以我最近将一些重复的标记移到了ng-templateblock中,我注意到在block内部,我无法直接访问作用域变量,但我仍然可以调用作用域函数。例如,考虑以下标记:<scripttype="text/ng-template"id="toggle-button.html"><buttonng-click="toggleFlag()">IToggletheFlag</button><buttonng-click="flag=!flag">IDoNothing</butt