【发布时间】:2017-05-05 23:30:40
【问题描述】:
我正在使用 angular-chart.js (v1.1.1),一个围绕 chart.js 的角度包装器(我相信 angular-chart.js 使用 chart.js v2.x),并且在创建水平滚动效果时遇到问题条形图中的条形开始变大。
我在其他地方看到了这个解决方案:http://jsfiddle.net/mbhavfwm/
但是:
- 我不确定我是否可以像用户在此处使用
angular-chart.js那样访问底层图表元素 - 我什至无法访问
angular-chart.js中的onAnimationComplete。 - 使用这个解决方案似乎有点笨拙。有没有更好的方法在确保条形图可以水平滚动的同时不渲染 2 x 轴?
这是我目前的解决方案:我有 3 个包含 div,canvas 最终呈现在第 3 个包含 div 内,配置如下:
this.chartOptions = this.composeChartService.createChartOptions({
title: ctrl.chartTitle,
legend: {
position: 'bottom'
},
responsive: true,
maintainAspectRatio: true
});
这是玉:
mixin dynamic-chart(type)
canvas(
class=`chart chart-${ type }`
title="$ctrl.chartId"
chart-data="$ctrl.events"
chart-series="$ctrl.cities"
chart-labels="$ctrl.labels"
chart-click="$ctrl.onClickBar"
chart-options="$ctrl.chartOptions")
div.chart-wrapper(ng-switch="$ctrl.chartType")
//- Bar chart
div.chart-area-wrapper(ng-when="bar")
div.chart-test
+dynamic-chart('bar')
这是影响这些 div 的手写笔:
.chart-wrapper
width: 800px
overflow: auto
canvas
background-color: white
width: 100%
.chart-test
width: 1200px !important
background-color: yellow
这种解决方案可以使用水平滚动,但是条形的厚度太低,我不喜欢在不需要宽度时随意选择.chart-test div 的宽度。此外,此解决方案有时会隐藏标题和图例(取决于滚动的长度)。
那么,有没有更好的方法让angular.chart.js 与水平滚动配合得更好?
【问题讨论】:
-
如果有一些可用的小提琴/plnkr 会更容易提供帮助..
标签: angularjs html5-canvas chart.js angular-chart