jQuery鼠标移动停止
菲利克斯的英文译文: 我想创建一个菜单,它跟随鼠标光标,如果光标与它保持一定距离,它就会停止移动。到目前为止,我的解决方案是: 我创建了两个嵌套的div。在内部div中包含菜单。外部div用于停止菜单。如果光标移动到外部div上,则只要光标停留在内部div上,内部div就会停止并停留*编辑:菜单应该缓慢但快速地停止 原文德文: 我在贝斯特·斯泰恩·布莱布特的家里住了一个很好的公寓。Mein Lösungsansatz的性别: 我在船舱里找到了2个。我是一个内线师。Dasäußere Div是一个简单的分区。此外,我还把毛泽格带到了阿伯伦森和斯泰恩·布莱本的内部剧组,我住在这里 Hier-mein-derzeitiger代码(fw's:jQuery):jQuery鼠标移动停止,jquery,menu,mousemove,mouseleave,Jquery,Menu,Mousemove,Mouseleave,菲利克斯的英文译文: 我想创建一个菜单,它跟随鼠标光标,如果光标与它保持一定距离,它就会停止移动。到目前为止,我的解决方案是: 我创建了两个嵌套的div。在内部div中包含菜单。外部div用于停止菜单。如果光标移动到外部div上,则只要光标停留在内部div上,内部div就会停止并停留*编辑:菜单应该缓慢但快速地停止 原文德文: 我在贝斯特·斯泰恩·布莱布特的家里住了一个很好的公寓。Mein Lösungsansatz的性别: 我在船舱里找到了2个。我是一个内线师。Dasäußere Div是一个
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'> </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