Javascript 是否可以在悬停时根据条件取消悬停事件?
我需要使执行函数的悬停事件根据边距顶部的条件停止运行该函数 这是我的小提琴- 在我眼睛血管破裂之前,请帮帮我:Javascript 是否可以在悬停时根据条件取消悬停事件?,javascript,jquery,function,hover,Javascript,Jquery,Function,Hover,我需要使执行函数的悬停事件根据边距顶部的条件停止运行该函数 这是我的小提琴- 在我眼睛血管破裂之前,请帮帮我: 谢谢。我只是在看你的JS提琴,虽然我不确定你希望停留在什么值上,但下面是我用来让它工作的代码: JS: JSFiddle: 请让我知道这是否对您有效!: “基于边距顶部的条件”是什么意思?我的函数通过调整容器“边距顶部”使我的有色黑色div上下移动,具体取决于您悬停在哪个黑色div上。我需要的是,悬停停止执行函数,例如,为了参数,“margin top”为“0px”或“margin t
谢谢。我只是在看你的JS提琴,虽然我不确定你希望停留在什么值上,但下面是我用来让它工作的代码: JS: JSFiddle:
请让我知道这是否对您有效!: “基于边距顶部的条件”是什么意思?我的函数通过调整容器“边距顶部”使我的有色黑色div上下移动,具体取决于您悬停在哪个黑色div上。我需要的是,悬停停止执行函数,例如,为了参数,“margin top”为“0px”或“margin top”为“450px”。mouseleave停止函数,但我无法在悬停mouseenter时根据条件确定如何停止函数。这是设计中存在的一些问题,由于使用魔法值来知道何时开始和停止。明确定义为变量的阈值远远不是魔法数字。如果我只输入607和0内联,我会认为你的评论是有效的。此外,选择的值是通过利用个体JSFIDLE的实验选择的。我清楚地指出,我不知道个人希望在哪里停止动画,所以我让它在示例列表末尾停止一帧。提出问题的人可以根据自己的喜好调整阈值逻辑。但是,答案符合请求的标准。IrishGeek82-是!非常感谢。逻辑就像我需要的那样工作,我现在可以专注于使它在视觉上更具吸引力。再说一次,我真是太感谢你了!
$(document).ready(function(){
function moveUp(){
$('#a').animate({
"margin-top" : "-=" + 30},200, "linear", moveUp);
};
/* $('.up').hover(function(){
if ($m =='0px'){
alert('stop');
}
else{
moveUp();
}
});
*/
$('.up').hover(function(){
moveUp();
},
function(){
$('#a').stop();
});
//---------------------------------------
function moveDown(){
$('#a').animate({
"margin-top" : "+=" + 30},200, "linear", moveDown);
};
$('.down').hover(function(){
moveDown();
},
function(){
$('#a').stop();
});
});
var upperThreshold = -607;
var lowerThreshold = 0;
function moveUp()
{
if ($("#a").css("marginTop").replace(/px/,'') <= upperThreshold)
{
console.log($("#a").css("marginTop"));
$('#a').stop();
return false;
}
else
{
$('#a').animate({"margin-top" : "-=" + 30},200, "linear", moveUp);
}
}
function moveDown()
{
if ($("#a").css("marginTop").replace(/px/,'') >= lowerThreshold)
{
console.log($("#a").css("marginTop"));
$('#a').stop();
return false;
}
else
{
$('#a').animate({"margin-top" : "+=" + 30},200, "linear", moveDown);
}
}
$(document).ready(function()
{
$('.down').hover(function()
{
moveDown();
},
function()
{
$('#a').stop();
}
);
$('.up').hover(function()
{
moveUp();
},
function()
{
$('#a').stop();
}
);
});