重新定位flot-tooltip,如果它在屏幕上的极左或右

时间:2013-01-10 22:02:24

标签: javascript jquery flot

我正在尝试显示flot图表的工具提示。当它们悬停在条形图上时,太尖端会显示相应的值。我的图表占据整个屏幕宽度,当它在最左边时,tootip超出了屏幕,我看不到任何值。如果它位于极左或极右,如何重新定位。我传递item.pageX和item.pageY值。我很困惑

#flot-tooltip {
        font-size: 12px;
        font-family: Verdana, Arial, sans-serif;
        position: absolute;
        display: none;
        border: 2px solid;
        padding: 2px;
        background-color: #FFF;
        opacity: 0.8;
        -moz-border-radius: 5px;
        -webkit-border-radius: 5px;
        -khtml-border-radius: 5px;
        border-radius: 5px;
    }

function showTooltip(x, y, contents, z) {
        $('<div id="flot-tooltip">' + contents + '</div>').css({
            position: 'absolute',
            display: 'none',
            top: y - 30, 
            left: x - 110,
            'border-color': z,
        }).appendTo("body").show();
    }

$("#flot-chart").bind("plothover", function(event, pos, item) {
        if(item) {
            if(previousPoint != item.dataIndex) {
                previousPoint = item.dataIndex;

                $('#flot-tooltip').remove();
                var x = item.datapoint[0].toFixed(2);
                    y = item.datapoint[1].toFixed(2);
                    z = item.series.color;

                showTooltip(item.pageX, item.pageY, "<b>" + item.series.label + "</b><br /> <hr>" + y, z);

            }
        } else {
            $('#flot-tooltip').remove();
            previousPoint = null;
        }
    });

1 个答案:

答案 0 :(得分:0)

您可能需要在showTooltip功能中添加一些逻辑。比如说,当它太靠近屏幕的左边缘时,你想限制x。您可以添加一些效果:

function showTooltip(x, y, contents, z) {
    if(x < 100){
     x = 100;
    }
  //rest of function
}

这应该强制工具提示显示在x等于100的位置,其中x值小于预定义值(100是此处的示例)。