我有一个非常简单的脚本(因为我是JQ菜鸟)
它如此简单我甚至不会做一个小提琴但会发布下面的代码:
var tip;
var orig;
var switched = 0;
$('.output').hover(function () {
tip = $(this).attr('title');
orig = $(this).text();
if(tip != orig)
{
$(this).text(tip).fadeIn(2000);
switched = 1;
}
}, function () {
if(switched == 1)
{
$(this).text(orig).fadeIn();
}
});
它按预期工作,因为我将鼠标悬停在span
上并使用“输出”类,它会使用title
的{{1}}切换值,但我的问题是它没有淡化文本。如何让它淡出标题? (鼠标输入和鼠标输出)
HTML就像这样:
span
答案 0 :(得分:3)
fadeIn
完成后,您需要致电fadeOut
。这是因为,如果它已经可见,那么另一个fadeIn
将不会对它产生任何影响。因此,您必须先fadeOut
,然后在完成后调用fadeIn
。
fadeIn
和fadeOut
都有一个回调作为参数,一旦效果完成就会被调用。将代码作为匿名回调包装为fadeOut
。
<强> 段 强>:
var tip;
var orig;
var switched = 0;
$('.output').hover(function () {
tip = $(this).attr('title');
orig = $(this).text();
if (tip != orig) {
$(this).fadeOut(function () {
$(this).text(tip).fadeIn();
switched = 1;
});
}
},
function () {
if (switched == 1) {
$(this).fadeOut(function () {
$(this).text(orig).fadeIn();
switched = 0;
});
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span title="Title" class="output">Hello</span>
&#13;