Я думаю, что 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');
});
Похоже, вы хотите скрыть эллипсы, а затем медленно анимировать прямоугольник, правильно? Вы можете сделать это, вычислив ширину до и после того, как 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);
});
Вот другой подход, чем 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);
});