Делать переход div медленнее в новое измерение с помощью jQuery

0

Я думаю, что jsfiddle будет лучше иллюстрировать проблему: http://jsfiddle.net/9mHk2/

Я пытаюсь заставить обертывание div перейти на новую ширину с помощью слайда /fade/что-то, а не привязываться к нему.

Каков самый простой способ сделать это?

<div style="border:1px solid #000000; padding:8px; float:right;">
    Here is a div with some text <span id="spn1">....</span>
</div>

<br /><br /><br />

<center>
    <input id="btn1" name="btn1" type="submit" value="Hide" />
</center>
$('#btn1').click(function (e) {
    e.preventDefault();
    $('#spn1').fadeOut('500');
});
  • 0
    что случилось с примером jsfiddle после редактирования вопроса? теперь нет кода для ссылки :(
  • 0
    Кто-то отредактировал пост, чтобы удалить фрагмент кода. Не может иметь ссылку jsfiddle на вопрос без сопровождающего фрагмента кода. К несчастью.
Показать ещё 2 комментария
Теги:

2 ответа

0
Лучший ответ

Похоже, вы хотите скрыть эллипсы, а затем медленно анимировать прямоугольник, правильно? Вы можете сделать это, вычислив ширину до и после того, как span будет скрыт, а затем оживите его:

$('#btn1').click(function (e) {
    e.preventDefault();

    // Here the width before the span is hidden
    var originalWidth = $('#rectangle').width();
    $('#spn1').hide();

    // Here the width after the span is hidden
    var newWidth = $('#rectangle').width();

    // Now animate the difference!
    $('#rectangle').css('width',originalWidth).animate({width: newWidth}, 1200);
});

FIDDLE

  • 0
    Работает отлично .. большое спасибо
  • 0
    Нет проблем. Удачного кодирования = D
0

Вот другой подход, чем user1506980, скрыть диапазон с использованием анимации ширины. Требуется дополнительный CSS.

#spn1 {
    overflow: hidden;
    display: inline-block;
    margin: 0;
    padding:0;
    height: 1em;
}

$('#btn1').click(function (e) {
    e.preventDefault();
    $('#spn1').animate({width:0},500).fadeTo(500,0);
});

jsFiddle

Ещё вопросы

Сообщество Overcoder
Наверх
Меню