iNickolay
@iNickolay

Как анимировать изменение содержания?

Здравствуйте! Имеем, скажем, такой код (jsfiddle):

<span class="vir">LongLongTitle1</span>

$('.vir').each(function () {
        var txt = $(this).text(),
            short;

        if (txt.length > 5) {
            var start = txt.substr(0, 2),
                end = txt.substr(-2, 2);

            short = start + '...' + end;
            $(this)
                .addClass('shorted')
                .attr('data-full-text', txt)
                .attr('data-short-text', short)
                .text(short);
        }
    });
    $('.vir')
      .mouseover(function () { $(this).text($(this).data('fullText')); })
      .mouseleave(function () { $(this).text($(this).data('shortText')); });


Подскажите пожалуйста, как добавить какую-нибудь плавную анимацию?
  • Вопрос задан
  • 179 просмотров
Решения вопроса 1
iNickolay
@iNickolay Автор вопроса
Решение оказалось простым)
Если кто-нить подскажет как его сократить - буду рад)

<span class="vir">LongLongTitle1</span>

$('.vir').each(function () {
        var txt = $(this).text(),
            short;

        if (txt.length > 5) {
            var start = txt.substr(0, 2),
                end = txt.substr(-2, 2);

            short = start + '...' + end;
            $(this)
                .addClass('shorted')
                .attr('data-full-text', txt)
                .attr('data-short-text', short)
                .text(short);
        }
    });
    $('.vir')
        .mouseover(function () {
            var self    = $(this),
                words   = $(this).data('fullText'),
                len     = words.length,
                wdth    = len * 10,
                c       = 0;

            $(this).animate({ 'width': wdth }, 200).text($(this).data('fullText'));
        })
        .mouseleave(function () {
            var self    = $(this),
                words   = $(this).data('shortText'),
                len     = words.length,
                wdth    = len * 10,
                c       = 0;

            $(this).animate({ 'width': wdth }, 100).text($(this).data('shortText'));
        });
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
sfi0zy
@sfi0zy Куратор тега CSS
Creative frontend developer
Если длинныйдлинныйзаголовок1 умещается в одну строку, то будет красиво реализовать этот эффект на чистом CSS
Ответ написан
@FungusWarrior
Я знаю, что ничего не знаю
Смотрите в jQuery Effects
Какая нибудь анимация
А особенно Fade
и Animate
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы