我有一个小的悬停脚本,它的工作原理如下: 当我将鼠标悬停在某个链接上时,它会淡化相关的div。
现在,我尝试创建第二个链接并将其配置为显示第二个div并且我已成功,但是,当我将它们快速一个接一个地显示时,它会显示 BOTH褪色的Divs 并保持一段时间(显示2个div而不是1)直到第一个div返回。
即使我在链接之间快速盘旋,我也希望在我悬停时只显示一个 div。
以下是代码:
<script type="text/javascript" src="https://code.jquery.com/jquery-1.8.3.js"></script>
<style>
#bank {display:none;}
</style>
<div><a href="#" id="btn">Show bank div and hide fancy div</a></div>
<div><a href="#" id="btn-bk">Show back and hid fancy div</a></div><br>
<div id="bank">Bank Div</div>
<div id="fancy">Fancy Div</div>
<script type="text/javascript">
//<![CDATA[
$(window).load(function(){
$('#btn').hover(function(e){
$('#fancy').fadeOut('slow', function(){
$('#bank').fadeIn('slow');
});
});
$('#btn-bk').hover(function(e){
$('#bank').fadeOut('slow', function(){
$('#fancy').fadeIn('slow');
});
});
/]]>
</script>
答案 0 :(得分:2)
$('#btn').hover(function(e){
$('#fancy').stop(true, true).fadeOut('slow', function(){
//--------^ Add 'stop(true, true)'
$('#bank').fadeIn('slow');
});
});
$('#btn-bk').hover(function(e){
$('#bank').stop(true, true).fadeOut('slow', function(){
$('#fancy').fadeIn('slow');
});
});
通过添加stop(true, true)
,您可以立即开始当前动画,之前的动画将从队列中删除。 Read More
答案 1 :(得分:1)
这可以防止同时显示2个div
$('#btn').hover(function(e){
$('#fancy').stop().hide();
$('#bank').fadeIn('slow');
});
$('#btn-bk').hover(function(e){
$('#bank').stop().hide();
$('#fancy').fadeIn('slow');
});
&#13;
#bank {display:none;}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div><a href="#" id="btn">Show bank div and hide fancy div</a></div>
<div><a href="#" id="btn-bk">Show back and hid fancy div</a></div><br>
<div id="bank">Bank Div</div>
<div id="fancy">Fancy Div</div>
&#13;
答案 2 :(得分:0)
如果已经运行,您可以使用标志返回功能:
SELECT user, COUNT(*) cars
FROM table
GROUP BY user
ORDER BY cars desc
LIMIT 1;
答案 3 :(得分:0)
这是因为如果将鼠标悬停在动画上而另一个动画正在进行中,则它不会停止当前动画。您可以通过对每个调用使用stop()函数来强制执行此操作。
$('#btn').hover(function(e){
$('#fancy').stop().fadeOut('slow', function(){
$('#bank').fadeIn('slow');
});
});
$('#btn-bk').hover(function(e){
$('#bank').stop().fadeOut('slow', function(){
$('#fancy').fadeIn('slow');
});
});
答案 4 :(得分:0)
<html>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.8.3.js"></script>
<style>
#bank {display:none;}
</style>
</head>
<body>
<div><a href="#" id="btn">Show bank div and hide fancy div</a></div>
<BR>
<BR>
<div><a href="#" id="btn-bk">Show back and hid fancy div</a></div><br>
<div id="bank">Bank Div</div>
<div id="fancy">Fancy Div</div>
<script type="text/javascript">
$(window).load(function(){
$('#btn').hover(function(e){
$('#fancy').fadeOut(40, function(){
$('#bank').fadeIn('slow');
});
});
$('#btn-bk').hover(function(e){
$('#bank').fadeOut(40, function(){
$('#fancy').fadeIn('slow');
});
});
});
</script>
<body>
</html>
尝试就是一个。你可以给十进制数来修正fadeIn函数的速度
答案 5 :(得分:0)
试试这个:
<select id="changeprocess" name="changeprocess" required>
<option value="" hidden="hidden">Choose Process</option>
{{range .Process}}
<option value="{{.}}">{{.}}</option>
{{end}}
</select>
&#13;
$('.toggle_text').hover(function(e){
var text = $(this).attr("data-info");
var text_to_show = $("#"+text).html();
$('#show_div').fadeOut('slow', function(){
$('#show_div').html(text_to_show).fadeIn('slow');
});
});
&#13;
#bank {display:none;}
.hide {display:none;}
&#13;
希望这有帮助。
答案 6 :(得分:0)
试试这个
$('#btn').hover(
function(e){
$('#bank').show();
},
function(e){
$('#fancy, #bank').hide();
}
);
$('#btn-bk').hover(
function(e){
$('#fancy').show();
},
function(e){
$('#fancy, #bank').hide()
}
);