jQuery текст исчезает / переход от одного текста к другому?



jQuery может, очевидно, fadeIn / fadeOut текст легко. Но что делать, если вы хотите изменить текст с одной вещи на другую? Может ли это произойти с переходом?



пример:



<div id='container'>Hello</div>


можно ли изменить текст Привет до мир но он меняется с переходом (например, исчезает или какой-то эффект) вместо того, чтобы мгновенно меняться?

368   6  

6 ответов:

вы можете использовать обратные вызовы, как это:

$("#container").fadeOut(function() {
  $(this).text("World").fadeIn();
});

вы можете попробовать здесь, или из-за того, как очередь работает в данном конкретном случае, например этой:

$("#container").fadeOut(function() {
  $(this).text("World")
}).fadeIn();

Это выполняет .text() вызов .fadeOut() завершено, прежде чем снова выцветания.

Если вы будете использовать hide / show или fadeIn/fadeOut, вы можете столкнуться с некоторым эффектом "прыжка", потому что он изменяет свойство отображения CSS. Я бы предложил использовать анимацию с непрозрачностью.

такой:

$('#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);
});

Я бы предложил вам использовать основной слайдер jQuery плагин. Очень легкий (6k) и делает то, что вы хотите, и имеет несколько вариантов настройки без всех помех большинства плагинов слайдера. Я использую его все время, и это здорово.

Comments

    Ничего не найдено.