jssery在css zoom / -webkit-transform之后单击位置

时间:2012-06-21 15:41:38

标签: javascript jquery css hover zoom

我有一个使用固定css宽度的Web应用程序。 (1280px)。

使用jquery,我添加了类似

的内容
$("html").css("zoom",window["zoomRatio"], "important");

以及-webkit-transform和mozilla的那个。

一切正常,除了我意识到我的一个带有jquery flot插件的图表不起作用(工具提示仍然在缩放之前在原始位置被触发)

调查一下,我意识到导致问题的是jquery.bind()。无论如何我可以改变鼠标悬停位置吗?

基本上我正在寻找一种假装鼠标处于不同位置的方法。我在网上查找了这些信息,但是我找不到很多有用的信息。

由于

编辑(我的工具提示代码)

   function showTooltip(x, y, contents) {
    $('<div id="tooltip">' + contents + '</div>').css( {
        position: 'absolute',
        display: 'none',
        top: y + 5,
        left: x + 5,
        border: '1px solid #fdd',
        padding: '2px',
        'background-color': '#fee',
        opacity: 0.80
    }).appendTo("body").fadeIn(200);
}

var previousPoint = null;
$("#placeholder").bind("plothover", function (event, pos, item) {
    $("#x").text(pos.x.toFixed(2));
    $("#y").text(pos.y.toFixed(2));

    if ($("#enableTooltip:checked").length > 0) {
        if (item) {
            if (previousPoint != item.dataIndex) {
                previousPoint = item.dataIndex;

                $("#tooltip").remove();
                var x = item.datapoint[0].toFixed(2),
                    y = item.datapoint[1].toFixed(2);

                showTooltip(item.pageX, item.pageY,
                            item.series.label + " of " + x + " = " + y);
            }
        }
        else {
            $("#tooltip").remove();
            previousPoint = null;            
        }
    }
});

1 个答案:

答案 0 :(得分:1)

由于工具提示为该功能提供了传入的xy值,因此您需要测试当前是否有true缩放条件。

修改:这是通过创建一个包含if statementzoomActivated两个新变量的新zoomOnset来完成的,以便与现有标记配合使用。只要缩放条件为真,就会调用此if语句。

片段代码示例:

function showTooltip(x, y, contents) {

    if(zoomActivated){

        x = x + zoomOnset;
        y = y + zoomOnset;

    }

    $('<div id="tooltip">' + contents + '</div>').css( { ....

以上内容将检查zoomActivated是否为布尔true,如果是,则调整xy以补偿对象的位置受缩放方法影响。当您调用jQuery缩放方法时,该变量设置为true,当该缩放方法完成/返回到原始状态时,该变量重置为false。

全局变量zoomOnset基于当前缩放幅度,假设缩放适用于xy。实际值是反映固定缩放值的固定值。