Jquery - 动画高度变化

时间:2014-12-30 21:34:51

标签: javascript jquery animation iframe height

我有脚本根据内容更改iframe的高度。脚本本身很好用,我只是想知道是否有一种方法可以设置高度变化的动画,这样当iframe从200px变为1000px时它就不那么笨重了?这是我的代码到目前为止,它工作正常,我只需要添加动画。谢谢你的帮助。

window.setInterval(function(){
    $("iframe.flexht").each(function() {
        $(this).height( $(this).contents().find("html").height() );
    });
}, 500);

2 个答案:

答案 0 :(得分:1)

此示例取自http://api.jquery.com/animate/

$( "#book" ).animate({
  opacity: 0.25,
  left: "+=50",
  height: "toggle"
}, 5000, function() {
  // Animation complete.
});

基本上不是直接设置高度,而是传递animate函数应该是的值。然后,animate函数将在内部调用requestAnimationFrame函数,以便随时间更改值。 https://developer.mozilla.org/en-US/docs/Web/API/window.requestAnimationFrame

给定的第二个参数(5000)是以毫秒为单位的动画时间。所以5000将持续5秒。此参数是可选的。

您可以通过为animate函数提供缓动字符串来告诉它。并非所有的缓动都支持jQuery,但你可以尝试一下这里列出的一些:http://api.jqueryui.com/easings/

最后,示例中的空函数是一个在动画结束时调用的函数。此参数也是可选的。

答案 1 :(得分:0)

在我看来,“setInterval”它有点重,因为它总是在检查一些东西。

您是否尝试使用css?...如果您将过渡转换为.flexht类怎么办?

.flexht{
  -moz-transition:all 1s;
  -webkit-transition:all 1s;
  transition:all 1s;
}

抱歉,我不知道你的HTML是怎样的。但根据我的经验,这很有效。