2

我有一个使用固定 CSS 宽度的 Web 应用程序。(1280 像素)。

使用 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;            
        }
    }
});
4

1 回答 1

1

由于您的工具提示具有为该函数提供的传入x和值,因此您需要测试缩放条件当前是否为.ytrue

编辑:这是通过创建一个if statement具有两个新变量的新变量来完成的,zoomActivatedzoomOnset与您现有的标记一起使用。只要缩放条件为真,就会调用此 if 语句。

片段代码示例:

function showTooltip(x, y, contents) {

    if(zoomActivated){

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

    }

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

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

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

于 2012-06-21T22:23:12.303 回答