【问题标题】:How to get div height after the action slider down or slider up?如何在动作滑块向下或向上滑动后获得 div 高度?
【发布时间】:2012-02-27 08:02:04
【问题描述】:

这里的代码:jsfiddle Demo

我想在它完成slider down/up的动作时得到div#content的高度。

例如,在demo中,我输入了一些文字,它们使div高度为36px,所以如果我点击slider down,我需要得到值36,如果我点击slider up,我需要返回值0。谢谢。

【问题讨论】:

    标签: jquery height


    【解决方案1】:

    那么,不过是在slideDown或slideUp的回调函数中,比如像:

     $('#content').slideDown('slow', function(){
            var height = $(this).height();
      }); 
    

    Demo

    请注意在slideDown 和slideUp 这两种情况下,它会为您提供相同的高度 38,因为这两个函数不会更改div,但只有从none到block的display属性,所以div#content的高度属性在向下滑动后与它的高度相同之前。

    【讨论】:

    • 嘿,谢谢你的帮助,但是slideup不起作用,值应该为零,但现在还是36
    • @Giberno,它在我在答案中发布的示例页面中工作。
    【解决方案2】:

    我知道这是一个旧线程,但是当我搜索它时它首先出现,所以我认为其他人也会登陆这里。

    如果我需要动画完成后的值,我会使用回调,但在我的用例中,我需要动画之前的高度,因此我可以将另一个元素扩展到相同的高度。为此,我做了以下工作:

    //Get height (start and end)
    var startHeight = $el.height();
    $el.show();
    var endHeight = $el.height();
    $el.hide();
    
    /**Do something useful with the height here**/
    $el2.animate({height: endHeight});
    
    //Slide the element down
    $el.slideDown();
    

    因为 JavaScript 是单线程的,所以永远不会呈现显示/隐藏。

    【讨论】:

      猜你喜欢
      • 2010-12-17
      • 2011-07-13
      • 1970-01-01
      • 2018-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多