动画高度,不在IE中工作

时间:2012-04-02 15:58:10

标签: jquery

我正在使用jquery动态更改div的内容 div的高度应根据新内容

更改/动画

我发现一些在Chrome,Firefox和iPhone上完美运行的线条。 但是在IE中,内容会动画,但它会“开箱即用”。意思是...... div的高度没有改变

var $mydiv = $('#venues');
$mydiv.css('height', $mydiv.height());
$mydiv.html(TheDynamicContent);
if (!$mydiv.find("div.innerWrapper").length) { $mydiv.wrapInner('<div class="innerWrapper"/>'); }
$mydiv.animate({height: $('div:first',$mydiv).height()});

我已经搜索了很多试图寻找替代方案/修复程序,没有运气.. 该怎么办? ;)

更新:似乎 curvycorners 正在生成一个额外的div,只有IE才会敏感。所以这段代码实际上还可以。

2 个答案:

答案 0 :(得分:0)

尝试指定延迟?

$mydiv.animate({height: $('div:first',$mydiv).height()}, 500);

答案 1 :(得分:0)

以下似乎适用于我(在IE10,9,8和7中测试)

$("#venues")
  .css("height", function(){ return $(this).height(); })
  .html("This is much longer text to force the element to grow.")
  .wrapInner("<div/>")
  .animate({
    "height": $("div:first", "#venues").height()
  }, 1000);

在线演示:http://jsbin.com/inudaz/2/edit

警告:您可能会在jsbin上遇到错误,建议$未定义。如果是这种情况,只需下载示例(使用保存&gt;从jsbin中下载)并在本地运行。

解决方案:OP的项目正在利用jQuery插件修改关键区域的DOM,导致意外行为。禁用此插件解决了这个问题。