10

我正在使用 morris.js(它依赖于 raphael)来创建堆叠条形图。对于每个堆叠条,我想将条中各个级别的拆分显示为工具提示。我尝试使用, hoverCallback:但它似乎无法让我控制我悬停的特定元素。我只获得该特定栏的内容。

我在这里设置了一个 JSBIN 示例:

当您将鼠标悬停在栏上时,它会在底部显示栏的索引。我想将内容显示为工具提示。JSBIN 示例

4

2 回答 2

27

小菜一碟。演示和代码:

<script type="text/javascript">
Morris.Bar({
    element: 'bar-example',
    data: [
        {y: '2006',a: 100,b: 90}, 
        {y: '2007',a: 75,b: 65}, 
        {y: '2008',a: 50,b: 40}, 
        {y: '2009',a: 75,b: 65}, 
        {y: '2010',a: 50,b: 40}, 
        {y: '2011',a: 75,b: 65}, 
        {y: '2012',a: 100,b: 90}
    ],
    hoverCallback: function(index, options, content, row) {
        return(content);
    },
    xkey: 'y',
    ykeys: ['a', 'b'],
    stacked: true,
    labels: ['Series A', 'Series B'] // rename it for the 'onhover' caption change
});
</script>

论据:

1:索引:表示记录号,即从0到n条记录。

2:内容:这是默认的悬停div。

3:选项:你的数据在这个里面,在return(content);之前。执行 console.log(options) 以查看详细信息。

4:row:看看下面row的使用是一个例子。

hoverCallback: function (index, options, content, row) {
                     console.log(row);
                     var hover = "<div class='morris-hover-row-label'>"+row.period+"</div><div class='morris-hover-point' style='color: #A4ADD3'><p color:black>"+row.park1+"</p></div>";
                      return hover;
                    },

升级版:

飞标需要在代码中添加Morris CSS样式表——demo

重要的提示

飞行标签从0.4.3版开始工作

于 2013-11-10T06:00:24.570 回答
6

http://jsbin.com/finuqazofe/1/edit?html,js,输出

{ y: ..., x: ..., label: "my own label"},'

...
Morris.Line({
    hoverCallback: function(index, options, content) {
        var data = options.data[index];
        $(".morris-hover").html('<div>Custom label: ' + data.label + '</div>');
    },
    ...
    other params
});
于 2014-12-27T23:59:28.320 回答