jQuery height() 在调整大小时不改变

2024-02-21

我以前从未遇到过这个问题,但我似乎找不到解决方案,所以我希望你们能帮助我。

jQuery

function setTheHeight() {

    if( $('#main.level1 .block.attention .block-content').length ) {
        //Get value of highest element
        var maxHeight = Math.max.apply(Math, $('#main.level1 .block.attention .block-content').map (
            function() {
                return $(this).height();
            }
        ));
        console.log(maxHeight);
        $('#main.level1 .block.attention .block-content').height(maxHeight);
    }
}

setTheHeight();

$(window).resize(function() {
    setTheHeight();
});

基本上,此函数的作用是检查最高的 div 并将所有选定的 div 的高度设置为该高度。这很好用。但它是响应式设计,因此当用户调整浏览器大小时,内容会变小,div 会变高。所以我添加了一个调整大小事件。该事件正在被触发,但它并没有改变高度。知道为什么调整大小没有改变高度吗?

快速 jsFiddle 显示发生了什么:http://jsfiddle.net/3mVkn/ http://jsfiddle.net/3mVkn/

FIX

嗯,这简直是愚蠢的。因为我正在设置 height() 它已经被修复了,所以我所要做的就是重置高度并且它起作用了。

更新的代码:

function setTheHeight() {

    if( $('#main.level1 .block.attention .block-content').length ) {

        //Reset height
        $('#main.level1 .block.attention .block-content').height('auto');

        //Get value of highest element
        var maxHeight = Math.max.apply(Math, $('#main.level1 .block.attention .block-content').map (
            function() {
                return $(this).height();
            }
        ));
        console.log(maxHeight);
        $('#main.level1 .block.attention .block-content').height(maxHeight);
    }
}

setTheHeight();

$(window).resize(function() {
    setTheHeight();
});

这与 jQuery 无关,而是与 CSS 相关。这是因为一旦您将 .block-content 的高度设置为某个值,在调整窗口大小后,这些 .block-content 的高度将不会改变,因为高度不再设置为auto但达到某个预定义值。

解决方案是使用return $(this)[0].scrollHeight代替return $(this).height()这样它将返回内容的真实高度,而不是 CSS 定义的高度。

EDIT:

解决方案实际上是计算 .block-content 内所有子元素的高度,然后返回该值。我在这里编辑了你的代码http://jsfiddle.net/3mVkn/12/ http://jsfiddle.net/3mVkn/12/

这应该会给你所需的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery height() 在调整大小时不改变 的相关文章

随机推荐

  • Azure Function v2 中的 BrokeredMessage 发送和消息使用者

    我有模拟的天蓝色网络作业 它会定期推送BrokeredMessage到服务总线主题 就像这样 public void Simulate TimerTrigger 0 30 RunOnStartup true TimerInfo timerI
  • 如何使用 Azure Functions 删除 blob?

    我正在创建一个 Azure 函数 当图像上传或添加到特定的 Azure 存储时会触发该函数 它会执行以下操作 1 调整图像大小 2 将图像放入正确的目录 使用输出绑定 3 删除处理后添加到 Azure 存储的原始 blob 图像 我已完成该
  • Rails 应用程序,IIS 8.5 中具有 Windows 身份验证的 REMOTE_USER 属性

    我已经设置了一个 IIS 8 5 服务器 它使用以下命令运行 Rails 应用程序HttpPlatformHandler和 Windows 身份验证 我们还尝试使用 ARR 作为反向代理 结果相同 这一切都工作得很好 用户使用 kerber
  • Ruby 转义 ARGV 参数或字符串作为 shell 命令的参数

    好吧 这让我发疯 ls media music Miles Davis 由于 Miles 和 Davis 之间有空格而失败 假设我编写了一个 ruby 脚本 并且用户将文件路径作为参数传递 我如何转义它并提供给 shell out 命令 是
  • canvas toDataURL 未返回完整图像

    我正在构建一个为图像添加水印的 jQuery 插件 是的 我很清楚 javascript html5 水印系统的多重缺点 但现在忽略它 每个图像的基本方法是 将图像粘贴到画布的背景 添加水印图像的数据 将原始图像的 src 替换为画布的 s
  • 在 MATLAB 中从 CSV 文件读取日期和时间

    datetime M01 M02 M03 M04 M05 M06 8 15 2009 0 00 5 8 7 8 7 8 7 3 0 7 9 8 15 2009 0 10 7 1 8 1 8 1 7 7 0 8 1 8 15 2009 0 2
  • Angular 6 SyntaxError:JSON.parse 位置 0 处的 JSON 中出现意外标记 <

    我知道这个问题已经被问过 但我找不到任何合适的解决方案 我正在尝试做一个post要求 该 API 需要一个x www form urlencoded正文格式所以我最终这样做了 login account LogAccount Observa
  • Android 加速度计移动球

    我在网络上发布的教程的帮助下开发了一个示例应用程序 我的目标是访问加速计并根据手机方向移动球 我在某种程度上是成功的 但我有两个问题 球超出屏幕范围 球的运动不顺畅 看起来它消失并重新出现在屏幕上 这是我的代码 我需要做些什么改变才能让球像
  • ExtJS 多个监听器

    我有一个属性网格 我想向其中添加多个 渲染后 侦听器 是否可以添加多个相同类型的侦听器 或在一个侦听器中触发多个函数 我试过了 afterrender function function 但它不会触发这两个功能 使用同一事件调用多个函数的另
  • make: *** /lib/modules/2.6.32-279.el6.x86_64/build: 没有这样的文件或目录。停止

    我从他们的网站下载了 RALINK 驱动程序 untar xvf rtl 然后我在其中运行 make 谷歌搜索建议 kernel devel 需要安装 我安装了 kernel devel 软件包 但仍然收到此错误 make lib modu
  • MooTools - 如何使用 getSelected()

    我正在努力学习 MooTools 而且我是一个彻底的 javascript 菜鸟 所以请对我温柔一些 我想做的是在选择特定选项时更改禁用输入字段 类型为文本 的状态 html 看起来有点像这样
  • 画布图像无法在 Chrome 中渲染(适用于 FF4 和 IE9)

    我很困惑 对于我的一生 我不知道为什么这在 Chrome 中不起作用 您可以在此处查看代码 http jsfiddle net corydorning NgXSH http jsfiddle net corydorning NgXSH 当我
  • 将 Python 上下文管理器的迭代器嵌套在“with”中

    我有一个返回上下文管理器的迭代器 我想要一个Pythonicwith语句 模拟几个嵌套的行为with语句 迭代器返回的每个上下文管理器都有一个 有人可能会说 我想要 已弃用的 的概括contextlib nested功能 来自docs ht
  • Define 未在 NodeJS TypeScript 应用程序中定义

    我正在打字稿中开发nodejs应用程序 其中我编写了一个文件server js作为休闲 import express require express import mongoose require mongoose let app expr
  • 如何从 powershell 命令行运行 php 脚本?

    我如何设置我的 powershell 来像这样的命令调用一样运行 php 脚本 php test php 我可以在通过 putty 连接到的工作服务器上执行此操作 但如果我能够直接从我自己的服务器执行这些脚本而不需要运行某些服务器 那就太好
  • 如何将列表中的行插入到QSqlTableModel中?

    下面是我的示例代码 class UI QMainWindow def init self super UI self init uic loadUi tableview ui self self show db QSqlDatabase a
  • 为什么 R 将文件排序为 1 10 100 而不是 1 2 3? [复制]

    这个问题在这里已经有答案了 可能的重复 R 自行对向量进行排序 坏孩子 https stackoverflow com questions 4286299 r sorts a vector on its own accord bad boy
  • IBM .net 驱动程序找不到 db2locale.dll

    我正在尝试将 net 解决方案的 Git 存储库拉到同一台计算机上的另一个文件夹 只是为了确保它有效 在我使用的项目中创建IfxConnections 当我尝试创建一个新的IfxConnection我得到一个DllNotFoundExcep
  • 实现 willDisplay 函数时 UITableViewCell 不取消选择

    我有一个UITableView它显示了几个可用选项供用户选择 我想要的是表始终反映所选的选项 这些选项存储在一个数组中 该数组是与视图控制器分开的类的一部分 我试图使用以下命令在表加载时显示选定的选项tableView tableView
  • jQuery height() 在调整大小时不改变

    我以前从未遇到过这个问题 但我似乎找不到解决方案 所以我希望你们能帮助我 jQuery function setTheHeight if main level1 block attention block content length Ge