【问题标题】:Using the height() method in jquery在 jquery 中使用 height() 方法
【发布时间】:2015-06-12 08:17:50
【问题描述】:

我是 jquery 的新手,目前正在尝试使用 id="thing" 设置一个等于某个 div 的高度的变量,然后再用 class=".init_leftbar" 为另一个 div 设置相同数量的动画。

var iHeight = $("#thing").height();

$(".init_leftbar").animate({top: iHeight + "px"});

但是,这似乎不起作用。

如果我只是将"iHeight" 设置为等于某个数字,它会生成动画。

我认为我对"height()" 方法的工作原理存在一些误解。

非常感谢任何帮助。

【问题讨论】:

  • 不,它是这样工作的,但是如果你有图像或其他需要加载的内容,你必须等待它等等
  • 可以描述“这似乎不起作用”
  • 嗨@adeneo,我尝试用$(window).load() 替换$(document).ready(),但无济于事。 @guest271314:就像,它只是没有通过将 .init_leftbar 向下移动 iHeight 像素来为 .init_leftbar 设置动画。但是,如果我用var iHeight = 100; 替换第一行,这将是 100px 的动画...

标签: javascript jquery html jquery-animate height


【解决方案1】:

我会尝试使用

在浏览器控制台中打印 $("#thing").height()
console.log($("#thing").height());

查看从 div 返回的内容。 我还注意到 .height() 在给定 display:block; 样式的绝对定位 div 方面存在一些问题。

【讨论】:

  • 谢谢,作为一个完全接触 jquery 和编程的新手,我什至不知道浏览器中的控制台。这样做表明 div #thing 的高度为 0。我可以通过将选择器指向 div 中包含的图像来解决这个问题,这给了我想要的值。我不知道为什么它返回零?也许与它的绝对地位有关?无论如何,发现这很有用,也将与outerheight() 一起玩。谢谢!
  • .height() 适用于 div 主体,不包括填充边距和边框,也许这是你的问题,或者可能在图像加载到 div 之前完成检查.在这种情况下,您必须在 div 中加载图像后执行此操作,欢迎您!乐于助人:)
【解决方案2】:

如 Jquery API 中所述:

http://api.jquery.com/height/

// Returns height of browser viewport
$( window ).height();

// Returns height of HTML document
$( document ).height();

【讨论】:

  • 这如何回答这个问题?
【解决方案3】:

考虑在文档就绪时运行脚本,让其他所有内容先加载。

此外,使用 outerheight() 可能会获得更好的里程数,它可以解释所有可以构成高度的因素,包括填充。

【讨论】:

    【解决方案4】:

    更换怎么样:

    $("#thing").height();
    

    与:

    $('#thing').css("height");
    

    请注意 css() 将字符串返回为“100px”而不是 100 作为 height() 所以你需要删除'+“px”'后缀。

    【讨论】:

      猜你喜欢
      • 2010-12-15
      • 1970-01-01
      • 1970-01-01
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      • 2013-01-02
      • 2016-03-04
      • 2011-07-06
      相关资源
      最近更新 更多