首页 > web前端 > js教程 > 正文

如何在没有滚动条的情况下检测 HTML 内容溢出?

Linda Hamilton
发布: 2024-11-23 06:45:29
原创
618 人浏览过

How Can I Detect HTML Content Overflow Without Scrollbars?

在没有滚动条的情况下检测 HTML 元素中的内容溢出

许多开发人员面临着确定 HTML 元素的内容何时超出其可见边界的挑战,特别是如果滚动条不存在的话。当元素的溢出属性设置为“可见”时,此任务变得更加复杂。

解决方案

解决方案在于比较元素的客户端尺寸([高度|宽度] ])及其滚动尺寸([高度|宽度])。但是,当溢出可见时,这些值将相等。为了解决这个问题,我们可以暂时将溢出样式修改为“隐藏”,检查溢出情况,然后恢复原来的溢出值。

实现

下面的代码片段提供了一个 JavaScript 函数 checkOverflow(),它执行此操作检测:

// Determine if the passed element is overflowing its bounds,
// either vertically or horizontally.
// Will temporarily modify the "overflow" style to detect this
// if necessary.
function checkOverflow(el)
{
   var curOverflow = el.style.overflow;

   if ( !curOverflow || curOverflow === "visible" )
      el.style.overflow = "hidden";

   var isOverflowing = el.clientWidth < el.scrollWidth 
      || el.clientHeight < el.scrollHeight;

   el.style.overflow = curOverflow;

   return isOverflowing;
}
登录后复制

用法

对目标元素调用 checkOverflow() 函数以确定是否有溢出内容。该函数返回一个布尔值,指示是否存在溢出。

测试

此例程已在 Firefox 3、Firefox 40.0.2、Internet Explorer 中成功测试6、Chrome 0.2.149.30。

以上是如何在没有滚动条的情况下检测 HTML 内容溢出?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板