javascript - 加载新数据时c3 JS滚动条跳转

标签 javascript css angularjs d3.js c3

我们使用 c3 作为 d3 javascript 图表库的包装器。你甚至可以看到in their own demo数据更新时,滚动条会瞬间闪烁。

当页面上已经有一个滚动条时,这不是问题,就像他们的情况一样。但是,如果页面较小,则添加和突然删除或滚动条可能会很不和谐。

我们没有做任何与他们在示例中所做的有很大不同的事情。谜团是为什么滚动条会跳动。有任何想法吗?如果你想看看我的代码,那就是打击:


数据正在使用 SignalR 传递到我们的 AngularJS 指令

$scope.$watch('data', function () {
    normalizedData = normalize($scope.data);

    chart.load({
        columns: getChartDataSet(normalizedData)
    });
});

在我们获取归一化数据后,它简单地被设置到一个数组中然后传递给 C3

var chart = c3.generate({
    bindto: d3.select($element[0]),
    data: {
        type: 'donut',
        columns: [],
        colors: {
            '1¢': '#2D9A28',
            '5¢': '#00562D',
            '10¢': '#0078C7',
            '25¢': '#1D3967',
            '$1': '#8536C8',
            '$5': '#CA257E',
            '$10': '#EC3500',
            '$20': '#FF7D00',
            '$50': '#FBBE00',
            '$100': '#FFFC43'
        }
    },
    tooltip: {
        show: true  
    },
    size: {
        height: 200,
        width: 200
    },
    legend: {
        show: true,
        item: {
            onmouseover: function (id) {
                showArcTotal(id);
            },
            onmouseout: function (id) {
                hideArcTotal();
            }
        }
    },
    donut: {
        width: 20,
        title: $scope.label,
        label: {
            show: false,
            format: function(value, ratio, id) {
                return id;
            }
        }
    }
});

最佳答案

正文> svg { 高度:0; 没有帮助我。但我做了一些实验并找到了解决方案:

body > svg {
    position: absolute;
    z-index: -10;
    top: 0;
}

不幸的是,如果窗口的高度太小,则此方法无法解决问题。

此外,您可以通过默认添加滚动条来摆脱跳转:

body {
    overflow-y: scroll;
}

关于javascript - 加载新数据时c3 JS滚动条跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28157447/

相关文章:

html - 构建响应式网站

javascript - Angular 矩无法通过 dom 注入(inject)起作用

node.js - 使用 Karma 进行 AngularJS 测试

css - 屏幕阅读器不阅读有序列表的元素符号和 CSS

html - 在 firefox 上播放动画时文本闪烁

Javascript 类型化数组和字节顺序

javascript - 在 ui-router 中的状态之间共享 ng-model 数据

javascript - 为什么 include() 在我的代码中不能正常工作?

javascript - 神秘的未定义函数

CSS - 对齐问题前的图像