当你将鼠标放在一个盒子上时,我试图让背景淡入淡出。我尝试了两种不同的选择。
选项1: Box1是它的鼠标盒子,而hover1是进入的新背景。这实际上效果很好。然而,它加载了acript,意思是,如果我只是用鼠标在盒子上发疯,那么即使我的鼠标静止不动,淡出也会持续不断。有没有办法可以阻止它? 内容是鼠标悬停时在内容框中更改的文本。这很有效。
$("#box1").mouseover(function(){
$("#background").switchClass("nohover", "hover1", 500);
$("#content").html(box1);
});
$("#box1").mouseout(function(){
$("#background").switchClass("hover1", "nohover", 150);
$("#content").html(content);
});
选项2: 在这里,我添加了类hover2并要求fadeín和fadeout。但这根本不起作用。有时候,当我拿出盒子的鼠标时,它甚至会移除侧面的所有东西。
$("#box2").mouseover(function(){
$("#background").addClass("hover2").fadeIn("slow")
$("#content").html(box3);
});
$("#box2").mouseout(function(){
$("#background").removeClass("hover2").fadeOut("slow")
$("#content").html(content);
});
我使用jquery ui。 我真的希望有人可以帮助我!
答案 0 :(得分:1)
您还可以尝试在标记/ CSS中进行少量更改。
HTML:
<div id="box">
<div id="background"></div>
<div id="content"></div>
</div>
CSS:
#box {
position: relative;
/* ... */
}
#background {
position: absolute;
display: none;
top: 0;
left: 0;
width: inherit;
height: inherit;
background-image: url(...);
z-index: -1;
}
JavaScript的:
$("#box").hover(function() {
$("#background").fadeIn();
}, function() {
$("#background").stop().fadeOut();
});
答案 1 :(得分:0)
尝试添加变量以仅在该变量具有特定值时控制效果的执行。并在效果执行时修改其值。
这样的事情:
var goeft = 0;
$("#box1").mouseover(function(){
if(goeft == 0) {
$("#background").switchClass("nohover", "hover1", 500);
$("#content").html(box1);
goeft = 1;
}
});
$("#box1").mouseout(function(){
$("#background").switchClass("hover1", "nohover", 150);
$("#content").html(content);
// sets its value back to 0 if you want the next mouseover execute the effect again
goeft = 0;
});