jQuery鼠标移动停止

jQuery鼠标移动停止,jquery,menu,mousemove,mouseleave,Jquery,Menu,Mousemove,Mouseleave,菲利克斯的英文译文: 我想创建一个菜单,它跟随鼠标光标,如果光标与它保持一定距离,它就会停止移动。到目前为止,我的解决方案是: 我创建了两个嵌套的div。在内部div中包含菜单。外部div用于停止菜单。如果光标移动到外部div上,则只要光标停留在内部div上,内部div就会停止并停留*编辑:菜单应该缓慢但快速地停止 原文德文: 我在贝斯特·斯泰恩·布莱布特的家里住了一个很好的公寓。Mein Lösungsansatz的性别: 我在船舱里找到了2个。我是一个内线师。Dasäußere Div是一个

菲利克斯的英文译文:

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

原文德文:

我在贝斯特·斯泰恩·布莱布特的家里住了一个很好的公寓。Mein Lösungsansatz的性别: 我在船舱里找到了2个。我是一个内线师。Dasäußere Div是一个简单的分区。此外,我还把毛泽格带到了阿伯伦森和斯泰恩·布莱本的内部剧组,我住在这里

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

var div=jQuery(“”).appendTo(“body”);
var mouseX=300,mouseY=300;
jQuery(文档).mousemove(函数(el){
如果(onMenu==false){
mouseX=el.pageX;
mouseY=el.pageY;
}
});
jQuery('#menubox').mouseenter(函数(el){
onMenu=true;
停止移动();
}).mouseleave(功能(el){
onMenu=false;
开始移动();
});
var xp=0,yp=0;
函数stopMoving(){
清除超时(计时器);
定时器=设置超时(函数(){
清除间隔(循环);
}, 100);
}
函数startMoving(){
清除超时(计时器);
清除间隔(循环);
循环=设置间隔(函数(){
xp+=(mouseX-xp)/20;
yp+=(鼠标-yp)/20;
jQuery('#menubox').css({left:xp,top:yp});
}, 40);
}
开始移动();//在页面加载时开始移动

*编辑:我有一个IE Bug。我必须在外分区放置一个透明的gif。现在这个函数就可以了。如果我在外分区或内分区,分区不会移动,但不会很快停止。它应该非常软,快速停止,不移动,即200px,然后使用ClearInterval()停止或硬停止。我应该再做一个计时器吗?

你好,这个网站是英文的。你不太可能得到另一种语言的回应。嗨,你是不是很有趣的修女daran nicht?嗨,代码怎么了?由于这是一个讲英语的社区,我更愿意用英语发布。@Sand:StackOverflow Fragen müssen in Englisch sein。如果你是一个普通人,那么你就不必为自己的生活付出代价(你必须自己翻译答案。)Meinen mierchsweizen是kaput吗
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