使用 display:none 读取 div 的滚动高度

2024-04-08

With a div父元素中的元素div隐藏着display:none.

  • 我正在抛弃 jQuerytextarea元素到控制台。我看到scrollHeight第 0 个元素的属性是88.
  • 我尝试将此属性读取到 var (使用$(element)[0].scrollHeight or $(element).prop('scrollHeight')我得到了0.

我也尝试设置textarea to position: absolute and display: block使用 jQuery,在读取之前,得到相同的结果。

如何正确读取属性?


当一个元素的大小是多少display:none? 0px by 0px

该元素尚未在屏幕上的任何位置进行渲染或绘制,因此它确实占据了零像素的空间。的问题if它是可见的,它有多少空间would消费这个问题很难回答,因为准确回答它意味着将假设变成现实。我们需要实际渲染它才能可靠地测量其大小。

一般来说,这涉及:

  1. Toggling- 快速使元素可见,检查高度并恢复回来

    When toggling,您也许能够在绘制周期之间使其可见并撤消,但这并不能保证。特别是如果您要测量的元素深深嵌套在隐藏的父元素内。

  2. Cloning- 尽可能模拟元素的属性并在屏幕外渲染

    When cloning,元素的尺寸基于其周围的大量其他元素和属性。根据页面的复杂性,也不能保证在屏幕外创建元素会产生完全相同原件的尺寸。

以下问题提出了多种解决方案,但大多数都遵循基本模式:

  • 需要找到隐藏 div 的高度设置为display:none https://stackoverflow.com/q/1473584/1366033
  • 获取位于 a 内的元素的大小display:none parent https://stackoverflow.com/q/10967857/1366033
  • 检查元素在 DOM 中是否可见 https://stackoverflow.com/q/19669786/1366033

还有一个图书馆叫jQuery.实际 https://github.com/dreamerslab/jquery.actual(2.4KB) 抽象了一些工作:

这是他们自己的演示页面 http://dreamerslab.com/demos/get-hidden-element-width-with-jquery-actual-plugin还有一个堆栈片段:

console.log("width: ", $("#inner").actual("width"))
console.log("height: ", $("#inner").actual("height"))
#outer, #inner {
  margin: 10px;
  padding: 10px;
}
#outer {
  background: #d1e3ef;
}
#inner {
  background: #9ebae9;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.actual/1.0.19/jquery.actual.min.js"></script>

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

使用 display:none 读取 div 的滚动高度 的相关文章

  • 如何在Shiny中默认选择verbatimTextOutput中的文本?

    这是与我之前的问题相关的问题 是否可以有固定宽度的 verbatimTextOutput 并让文本在 Shiny 中换行 https stackoverflow com q 58516071 7669809 我有以下闪亮的应用程序 http
  • 如果用户登录,则更改引导程序中的导航栏

    我有一个标准菜单 包括 登录 和 创建用户 的选项 我想要的是 当您创建用户或登录整个导航栏菜单来更改 例如 我的用户页面 和 注销 时 我该怎么做 div div
  • jQuery 动画:鼠标移开后停止动画

    我正在尝试做一个div悬停时滑出和滑入 即鼠标分别进入和离开 然而 当我多次徘徊进出时 div基本上不断地来回滑动 直到我悬停的次数为止 请参考这个jsFiddle 示例 http jsfiddle net sikusikucom TQz5
  • 使用 jQuery 禁用超链接

    a href gohere aspx class my link Click me a I did my link attr disabled true 但没用 有没有一种简单的方法可以使用 jquery 禁用超链接 删除href 我宁愿不
  • 导航栏是垂直的而不是水平的

    div div
  • Html 视频播放器播放声音但不播放视频

    我正在制作网页 并尝试插入视频 视频播放器加载正常 您可以按播放 但只播放音频 而不播放视频 在 Chrome 中预览时 在 firefox 中查看时可以正常工作 我的代码如下
  • 如何纠正 Highcharts 中的鼠标事件

    我正在尝试绘制 xy 线 其中 y 轴反转 并且我得到了图 但是mouse event我无法纠正它 它显示反向事件 我想自动找到轴的最小值和混合 如何做到这一点 以及如何将 x 轴置于顶部 这是我的代码 JS function var ch
  • 如何使用 CSS 使表格中的分隔线/边框消失?

    我有一个简单的 HTML 表格 我希望分隔线 边框 消失 所需的最终结果是一个除了实际文本之外不可见的表格 我尝试将 border 属性设置为 0 但没有帮助 我应该使用什么正确的 CSS 属性 table tr td th border
  • 控制 HTML 中的图像加载顺序

    有没有办法控制网页上图像的加载顺序 我正在考虑尝试通过首先加载轻量级 加载 图形来模拟预加载器 有任何想法吗 Thanks 使用 Javascript 并填充图像src属性稍后 这 告诉浏览器链接到页面上的 URL 因此不会向服务器发送请求
  • JQuery 安全问题 - 链接操作(基于 DOM)

    BURP 套件发现存在链接操作 基于 DOM 问题 jquery 3 3 1 js 问题出在代码中 用于解析文档来源的锚标记 originAnchor document createElement a originAnchor href 位
  • 如何在使用“document.createElement()”方法创建单元格后立即在 JavaScript 中设置单元格宽度?

    我已经使用 document createElement td 方法在 html 页面中为动态表格创建了单元格 现在希望用一些不同的值设置每个单元格的宽度 尝试过 cell width width 但它不起作用 我怎样才能实现它 Use s
  • 从 Google 电子表格中的列填充 HTML 下拉菜单

    我是 gs 的新手 所以这应该不难 我有一个 Google 电子表格 其中一列中有值 假设 A 列 我使用 gs 创建了一个自定义菜单 用户将在其中选择一个选项 单击其中一个选项 新组件 将出现一个弹出窗口 其中包含一个下拉菜单 用户应从其
  • 将此自定义 JQuery 工具提示脚本转换为 Jquery 插件

    我在一些 stackoverflow 用户的帮助下 使用 Jquery 和通用 Javascript 开发了这个工具提示脚本
  • jQuery - 动画可折叠 DIV,向上滑动?

    我使用这个 jQuery 脚本来设置 div 的动画 以便在用户单击按钮时打开 关闭 http www dynamicdrive com dynamicindex17 animatedcollapse htm http www dynami
  • 辅助功能:在密码输入中显示/隐藏密码按钮

    密码输入具有显示 隐藏按钮是很常见的 但我在网上发现很少有关于与其相关的可访问性问题的内容 我是否应该将任何类型的 ARIA 属性附加到按钮或密码输入 是一个复选框还是一个触发JS的按钮也能达到很好的效果 不知道我应该注意什么 作为一个不太
  • 淡出图像上的文字

    我知道如何使用 CSS 透明渐变淡出纯色背景上的文本 但是如何才能淡出图像背景上的文本呢 这是我想要的一个例子 注意 我需要像图像一样的静态效果 而不是动态过渡 CSS mask image可能是您正在寻找的 div background
  • CSS:结合纹理和颜色

    有人如何将用作背景图像的纹理和该纹理上方的背景颜色结合起来 这是纹理 我希望我的正文背景页面是这样的 我正在努力处理背景图像和背景颜色 http jsfiddle net 87K72 http jsfiddle net 87K72 body
  • AngularJs:当放置在 ng-view 标签内时,ng-include 不起作用

    我正在通过 ng view 内的角度路线加载 html 页面 我正在加载的页面包含一个 ng include 标签 指向 另一个 html 文件 我尝试了以下所有语法 div src div div div div src include
  • 打开我网站上的链接不起作用

    在我的网站上 我有一个我正在尝试获取工作的链接 我有一个遵循正常格式的链接 即 href 以 www youtube com 作为目标链接 并在末尾添加 target blank 当我单击该链接时 托管我的网站的网站会显示一条错误消息 当我
  • 删除已从另一个下拉菜单中选择的下拉值

    我在网上搜索了一段时间 但仍然找不到答案 我的网站上有三个下拉菜单 我使用它们来接受用户首选项 以便用户可以控制结果的输出 所以我想知道如果在其中一个下拉列表中选择了该值 是否可以从其他两个下拉列表中取出该值 例如 如果用户在第一个电影中选

随机推荐