我正在使用 morris.js(它依赖于 raphael)来创建堆叠条形图。对于每个堆叠条,我想将条中各个级别的拆分显示为工具提示。我尝试使用, hoverCallback:
但它似乎无法让我控制我悬停的特定元素。我只获得该特定栏的内容。
我在这里设置了一个 JSBIN 示例:
当您将鼠标悬停在栏上时,它会在底部显示栏的索引。我想将内容显示为工具提示。JSBIN 示例
小菜一碟。演示和代码:
<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版开始工作
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
});