1

菲利克斯的英文翻译:

我想创建一个跟随鼠标光标并在光标与它有一定距离时停止移动的菜单。到目前为止我的解决方案:我创建了两个嵌套的 div。在内部 div 中包含菜单。外部 div 用于停止菜单。如果光标移动到外部 div 上,则内部 div 应该停止并停留,只要光标悬停在它上面。*编辑:菜单应该轻轻但很快地停止。

德语原文:

ich möchte ein Menü erstellen welches meinen Mauszeiger verfolgt und in bestimmter nähe stehen bleibt。Mein Lösungsansatz ist folgender: Ich baue 2 ineinander verschachtelte DIVs。Im inneren DIV ist das Menü vorhanden。Das äußere Div ist zum stoppen da。还有 das äußere Div gehe soll das innere DIV stark abremsen und stehen bleiben, solange ich drin bin 中的 wenn ich mit dem Mauszeiger。

Hier mein derzeitiger 代码(fw's:jQuery):

var div = jQuery("<div id='menubox'><div id='innerdiv'>&nbsp;</div></div>").appendTo("body");

    var mouseX = 300, mouseY = 300;
    jQuery(document).mousemove(function (el) {
        if (onMenu == false) {
            mouseX = el.pageX;
            mouseY = el.pageY;
        }
    });

    jQuery('#menubox').mouseenter(function (el) {
        onMenu = true;
        stopMoving();
    }).mouseleave(function (el) {
        onMenu = false;
        startMoving();
    });

    var xp = 0, yp = 0;
    function stopMoving() {
        clearTimeout(timer);
        timer = setTimeout(function () {
            clearInterval(loop);
        }, 100);
    }
    function startMoving() {
        clearTimeout(timer);
        clearInterval(loop);
        loop = setInterval(function () {
            xp += (mouseX - xp) / 20;
            yp += (mouseY - yp) / 20;
            jQuery('#menubox').css({ left: xp, top: yp });
        }, 40);
    }
    startMoving(); // StartMoving on Page Load

*编辑:我有一个 IE 错误。我不得不在外部 div 放置一个透明的 gif。现在这个功能可以了。如果我在外部或内部 div 中,则 div 不会移动,但不会很快停止。它应该非常柔和快速地停止,不要移动,即 200 像素,然后使用 clearIntervall() 停止或硬停止。我应该再做一个计时器吗?

4

0 回答 0