当前位置: 首页 > 知识库问答 >
问题:

引导3标签

鄢禄
2023-03-14

我正在使用Bootstrap 3选项卡进行页面布局,并Chart.js为项目创建甜甜圈图。

但是,当更改为带有图表的选项卡时,图表不会加载。有时,当您开始在谷歌浏览器中检查元素时,它们会加载。它们似乎只有在第一个可见选项卡上加载时才会呈现。

chrome控制台中的chart.js javascript有一个已知错误:

未捕获的IndexSizeError:无法对“CanvasRenderingContext2D”执行“arc”:提供的半径(-0.5)为负。

我认为这是因为Bootstrap将选项卡的可见性设置为“无”,因此图表无法正确呈现或出现其他问题。。。

它应该是这样的:

其他人有过这个问题吗

...或者我应该寻找另一个图表脚本,它可以很好地与Bootstrap选项卡一起使用。

谢谢你提前:)

共有3个答案

施飞昂
2023-03-14

对我来说,解决办法非常简单。使用最新提交,更新图表。Arc功能如下:

Chart.Arc = Chart.Element.extend({
    inRange: function (chartX, chartY) {

    var pointRelativePosition = helpers.getAngleFromPoint(this, {
        x: chartX,
        y: chartY
    });

    //Check if within the range of the open/close angle
    var betweenAngles = (pointRelativePosition.angle >= this.startAngle && pointRelativePosition.angle <= this.endAngle),
        withinRadius = (pointRelativePosition.distance >= this.innerRadius && pointRelativePosition.distance <= this.outerRadius);

    return (betweenAngles && withinRadius);
    //Ensure within the outside of the arc centre, but inside arc outer
},
tooltipPosition: function () {
    var centreAngle = this.startAngle + ((this.endAngle - this.startAngle) / 2),
        rangeFromCentre = (this.outerRadius - this.innerRadius) / 2 + this.innerRadius;
    return {
        x: this.x + (Math.cos(centreAngle) * rangeFromCentre),
        y: this.y + (Math.sin(centreAngle) * rangeFromCentre)
    };
},
draw: function (animationPercent) {

    var easingDecimal = animationPercent || 1;

    var ctx = this.ctx;
    var innerRadius = (this.innerRadius < 0) ? this.innerRadius * -1 : this.innerRadius;
    var outerRadius = (this.outerRadius < 0) ? this.outerRadius * -1 : this.outerRadius;

    ctx.beginPath();

    ctx.arc(this.x, this.y, outerRadius, this.startAngle, this.endAngle);

    ctx.arc(this.x, this.y, innerRadius, this.endAngle, this.startAngle, true);

    ctx.closePath();
    ctx.strokeStyle = this.strokeColor;
    ctx.lineWidth = this.strokeWidth;

    ctx.fillStyle = this.fillColor;

    ctx.fill();
    ctx.lineJoin = 'bevel';

    if (this.showStroke) {
        ctx.stroke();
    }
}

});

需要注意的是内半径和外半径上的三元运算符,以防止负值。这就像我的项目上的魅力。图表继续具有响应性,并且通过将半径转换为自然数(即:正数)没有有害影响

阮阳曦
2023-03-14

我也遇到过这个问题。如果我没记错的话,我是通过在使用< code > showed . bs . tab (http://getbootstrap.com/javascript/#tabs)显示活动选项卡时调用图表js render来解决这个问题的

$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
  e.target // newly activated tab
  //call chart to render here
});

希望这有帮助。

柳逸春
2023-03-14

由于这个问题的根源是在引导程序中不显示标签内容,我用一点css技巧解决了这个问题。

.tab-content>.tab-pane {
    display: block;
    height: 0;
    overflow: hidden;
}
.tab-content>.tab-pane.active {
    height: auto;
}
 类似资料:
  • 我一直在使用Bootstrap3.3。5和轨道4.2。3几天来,我一直试图在我的应用程序中显示图标。我已经成功地启动了jQuery UI,并使用了引导datetimepicker gem,以便在选择日期时可以看到有用的日历。但是,我不知道如何使日历图标出现。 Glyphicons在应用程序/资产/字体/中处于松散状态。JavaScript 只需添加图标,我就完成了!任何帮助都太好了! 应用css

  • 问题内容: 我以前没有使用过任何引导框架。我想在页面的bootstrap 3中包含一些glyphicons。据我了解,它们应该包含在我添加到页面的bootstrap.css文件中。当我查看bootstrap.css文件时,没有看到对它们的引用?尽管文件很大,我可能还是错过了一些东西。 我注意到,当我打开从引导程序3下载的 文件夹时,会有一个单独的文件夹,其中包含名为: 似乎这是字形符号所在的位置,

  • 嗨,我一直在尝试只获得一个引导日期选择器的日期,并且已经能够,但它似乎激发了3次。注意:这不是jquery日期选择器,而是引导日期选择器。 使用此日期选择器:https://github.com/eternicode/bootstrap-datepicker,而不是老的eyecon。一号。 HTML: 除了改变,我还使用了其他一些选项,比如 但这并没有结束日期选择器,希望有一个简单的解决方案。谢谢

  • 我正在尝试将三个引导列居中对齐。我不希望列跨越整行。我认为这会使图像看起来太大,空间不够。这就是为什么我放了三列“col-md-3”。我喜欢这个尺寸的栏目。我只想让这些列居中对齐。我想我可以将类名“justify content md center”应用到行中,它可以工作,但不能工作。有人知道如何使用Bootstrap 3将下面的列居中对齐吗?可能吗? 这是我的密码: 在代码笔上查看它。 谢谢你的

  • Twitter的Bootstrap 3按钮颜色有限。默认情况下会有 每个按钮有3个状态(默认,活动和禁用) 如何添加更多颜色或创建自定义按钮?Twitter的Bootstrap 2已经回答了这个问题。x:设置twitter引导按钮的样式。引导3不向后兼容。less和css文件中会有很多变化。对IE7的支持将被取消。TB3首先是移动设备。标记代码也将更改。

  • 我正在尝试使用Bootstrap4创建一个表单。但是文件输入的标签溢出了列。我找不到一个方法使它适合这个专栏。有没有一种引导方式或自定义css可以实现这一点? 编辑:很抱歉,我的问题没有得到很好的解释。我所说的标签是指文件输入中的标签。那个isi“选择文件…”。可以看到,图像中输入的文件在右侧溢出。它与其他输入字段不对齐。