我可以从40px到600px进行slideDown吗?

时间:2011-11-16 11:05:40

标签: jquery

我有一个高度为40px的div;我想用jQuery从这个高度做一个scrollDown到600px。

我该怎么做?

2 个答案:

答案 0 :(得分:5)

您正在寻找animate而非scrollDown(或slideDown,我怀疑这是您的意思)。 E.g:

$("selector_for_the_div").animate({
    height: 600
});

Live example


更新:在对另一个答案的评论中说:

  嗯,我想我不能使用animate!因为我需要链接到这个div的每个元素(比如一些具有绝对位置的div)用#myDiv

滚动

如果你的元素与div对齐的方式是当div变得更高时它们不会自然地移动(例如,你已经使用过position: absolute或类似的东西),你可以动画他们同时拥有top(或bottom)财产。我会看看是否有可能以不同的方式将它们与div联系起来,但如果你不能,那将是你唯一的选择。它看起来像这样:

jQuery(function($) {
  var theDiv = $("#theDiv"),
      absDiv = $("#absDiv"),
      coords = theDiv.offset(),
      origHeight = theDiv.height();

  absDiv.css({
    position: "absolute",
    left:     coords.left + "px",
    top:      (coords.top + origHeight) + "px"
  });

  $("#theButton").click(function() {
    var height = theDiv.height();
    if (height < 600) {
      theDiv.animate({
        height: 600
      });
      absDiv.animate({
        top: coords.top + 600
      });
    }
  });
});

Live example

答案 1 :(得分:1)

以这种方式使用jQuery animate

$('#myDiv').animate({ "height": 400 }, 'slow');

检查此样本:

http://jsfiddle.net/4r3rF/