jQuery文本淡入淡出/从一个文本转换到另一个?
jQuery可以很容易地淡入淡出文本。 但是如果你想把文本从一个东西改变到另一个呢? 这可以发生在一个过渡?
例:
<div id='container'>Hello</div>
你可以改变文字你好 世界,但它有一个转变(如淡入淡出或一些效果),而不是立即改变?
您可以使用callback,如下所示:
$("#container").fadeOut(function() { $(this).text("World").fadeIn(); });
你可以在这里试一下 ,或者因为队列在这种特殊情况下的工作方式如下:
$("#container").fadeOut(function() { $(this).text("World") }).fadeIn();
这会在.fadeOut()
完成时执行.text()
调用,就在再次淡入之前。
如果您使用hide / show或fadeIn / fadeOut,您可能会遇到一些“跳跃”效果,因为它会更改CSS显示属性。 我会build议使用带有不透明度的animation。
喜欢这个:
$('#container').animate({'opacity': 0}, 1000, function () { $(this).text('new text'); }).animate({'opacity': 1}, 1000);
这是一个生动的例子 。
(function() { var quotes = $(".quotes"); var quoteIndex = -1; function showNextQuote() { ++quoteIndex; quotes.eq(quoteIndex % quotes.length) .fadeIn(2000) .delay(2000) .fadeOut(2000, showNextQuote); } showNextQuote(); })();
它运作良好。
我能想到的一个方法就是让子元素带有文本,只显示一个元素,然后逐一淡入其他元素。
看看这里: http : //jsfiddle.net/VU4CQ/
在这个菜单上使用数组查找文本和颜色的变化,转换速度和mouseenter,mouseleave事件是这样的:
$('#id a').mouseenter(function() { $(this).fadeOut( eSpeed, function() { $(this).text(sayThis[0]); $(this).css({ color: eColor }); }).fadeIn(eSpeed); }); $('#id a').mouseleave(function() { $(this).fadeOut( eSpeed, function() { $(this).text(sayThat[0]); $(this).css({ color: lColor }); }).fadeIn(eSpeed); });
我会build议你使用基本的滑块jQuery插件 。 非常轻量级(6K),并做你想要的,并有几个定制选项,没有大部分滑块插件的混乱。 我一直使用它,这很好。