使用JQuery的animate()动画制作CSS值

时间:2014-04-18 20:05:48

标签: javascript jquery css

我想将元素的样式设置为使用CSS定义的值。我不想设置默认值的动画,因此animate({'width':'auto'})无法正常工作。

例如:

<style>
#element{width:100px;}
</style>

<div id=element></div>

<script>
$('#element').width(200);
$('#element').animate({width:'auto'});
</script>

有没有办法在不使用Javascript变量的情况下将元素设置回原始宽度?

2 个答案:

答案 0 :(得分:0)

您可以尝试以下方法之一:

  1. 如果widthanimate在同一范围内,您可以执行以下操作(在本地var中设置新的宽度之前存储初始宽度并在{{1}中使用它}):

    animate
  2. 如果您稍后致电var initialWidth = $('#element').width(); // or $('#element').css('width') $('#element').width(200); $('#element').animate({width:initialWidth}); 并且无法使用本地var,因为它超出了范围,您可以将初始宽度存储在animate属性

    data

    然后在您致电var initialWidth = $('#element').width(); // or $('#element').css('width') $('#element').data('initial-width', initialWidth); $('#element').width(200); 时检索它:

    animate
  3. 使用无JS变量

    ,查看方法#2的工作FIDDLE

答案 1 :(得分:0)

您可以使用辅助html标记解决“no js variable”要求。

<style>
$aux_element {width:100px; display: none;}
#element, width:100px;}
</style>

<div id='aux_element'></div>
<div id='element'></div>

<script>
$('#element').width(200);
$('#element').animate({width: $('#aux_element').css('width');});
</script>

Here a working js fiddle.