javascript - 条形太短,不再可见

标签 javascript jquery jquery-plugins jqplot

所以我有这个带有 jqplot 的图表

jqplot

如果您足够仔细地观察,您会发现在 4 和 5 下方确实有要显示的数据,但条形太短,无法显示数字标签。我有悬停文本,但该栏也太小,鼠标无法注册。在 3 以下实际上在红色和绿色之间还有另一个条,但它也太小而无法显示。

遇到这种情况怎么办?有什么建议么?

我有几个想法,但不知道如何实现:

  • 仅当条形图比最高的条形图小一定百分比时,才在每个条形图的下一个/顶部显示数字标签。

  • 当鼠标位于给定列中时显示悬停文本,而不仅仅是在栏本身上。此悬停文本将显示所有 3 种颜色的数据,而不仅仅是一种。

谢谢!

编辑:

我通过编写自定义荧光笔类让悬停文本显示所有 3 种颜色

highlighter: {
show: true,
...
tooltipContentEditor:tooltipContentEditor,
}
...
function tooltipContentEditor(str, seriesIndex, pointIndex, plot) {
    var data1 = plot.data[2][pointIndex];
    var data2 = plot.data[1][pointIndex];
    var data3 = plot.data[0][pointIndex];
    var value = data1 + "-" + data2 + "-" + data3;
    return value;
}

当然这只适用于每个条形总是有 3 种颜色的情况,对我有用,所以我现在正在使用。现在我需要弄清楚如何在栏太小时更轻松地显示荧光笔。

编辑 2:

我想出了如何让打火机显示出来。

  1. 创建一个虚拟系列,我将其设置为给定列与最高列之间的差异

  2. 将颜色更改为 rgb 透明,移除阴影、移除高光和其他任何内容。

  3. 将鼠标悬停在不可见栏或其下方的任何栏上时,现在会显示完整的统计数据,耶!

最佳答案

不可见的数据系列听起来很老套,更不用说现在用户将鼠标放在这个空间时会得到不一致的反馈,这将是一个可变实体

这听起来是使用图例的好时机,然后将处理程序放在图例的项目上,触发相关系列的悬停

var $l = $('.jqplot-table-legend');
$l.on('mouseenter', function(e){
var $this = $(this),
    i = $this.index(),
    l = $l.length;
    // now call your custom highlight function or trigger the hover using relevant indices
})
.on('mouseleave', function(e){ 
    // hide visible tooltips
});

附注hover 已弃用,请不要再使用它

关于javascript - 条形太短,不再可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14469405/

相关文章:

javascript - 如何将动态生成的网页显示到新标签页?

javascript - 如何在JS中使用ajax请求的结果?

javascript - 设计模式: extending jQuery objects with chaining + namespacing

jquery - 当一个 div 使用 jquery 加载图像时,它里面的其他 div 正在消失。为什么会发生这种情况?

javascript - 如何确定何时创建 jQuery 数据表并加载数据

javascript - 在angularjs中,如何嵌入完整的HTML文档?

javascript - VueJS 如何在数据更改时使用 _.debounce

javascript - onclick加载/运行此代码

javascript - undefined reference - jQuery 选择器与 JavaScript 变量

jquery - 滚动到元素并将其放置在 View 中间