Flot:绘制标记时获取x轴偏移

时间:2015-08-06 04:36:48

标签: javascript jquery flot

我正在尝试在我的flot图表中添加一个删除按钮,删除绘制的标记。为了放置这个按钮,我需要设置图像的偏移量(顶部和左侧)。

场景1:绘制图表后,单击图表中的数据点,我会垂直绘制标记。在这种情况下,我想获得标记的正确左偏移量,以便我可以在标记的顶部放置一个按钮。类似于下面的屏幕截图。

Sample of what i am trying to achieve

场景2:我已将这些点击的数据点存储在我的bean中,当重新加载或刷新图形时,使用这些存储的数据点我再次创建标记。此时我还想知道左侧的设置,以便我可以再次将按钮放在此标记的顶部。

以下是我尝试使用的js片段。

$("#placeholder").bind("plotclick", function (event, pos, item) {

        if (item) {
            $("#clickdata").text(" - click point " + item.dataIndex + " in " + item.series.label);
            var p = item.datapoint[0];
            markings1.push({ xaxis: { from: item.datapoint[0], to: item.datapoint[0] }, color: "#EF4036" });

            $("#tooltip").remove();
            var div = $('<div id="d1">');
            var imid = "dp"+item.datapoint[0];

            var img = $('<img class="btn">'); //Equivalent: $(document.createElement('img'))


            img.attr('id', imid);
            img.attr('src', "http://megaicons.net/static/img/icons_sizes/8/178/256/editing-delete-icon.png");

            $("#"+imid).data('dp',item.datapoint[0]);
            img.appendTo("#d1");
            img.width(20);
            img.data('dp',item.datapoint[0]);
            img.height(20);
            img.offset({top: plot.offset().top-25, left: pos.pageX-10});
            div.appendTo('#placeholder');

            plot.draw();    

        }
    });

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用它来获取图表中x值的x坐标(相对于页面):

var xPos = plot.offset().left + plot.getAxes().xaxis.p2c(xValue);

有关详细信息,请参阅documentation