js:判断元素超出隐藏overflow:hidden生效

简介: js:判断元素超出隐藏overflow:hidden生效

文档:


clientWidth: https://developer.mozilla.org/zh-CN/docs/Web/API/Element/clientWidth

scrollWidth: https://developer.mozilla.org/zh-CN/docs/Web/API/element/scrollWidth

offsetWidth: https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLElement/offsetWidth

通过元素的属性:clientWidth/clientHeight 和 scrollWidth/scrollHeight 来判断元素是否有超出隐藏部分

如果有超出隐藏部分,就会出现 client < scroll

有以下情况:

  1. 如果元素没有超出隐藏
clientWidth==scrollWidth && clientHeight == scrollHeight

如果元素横向超出隐藏

clientWidth < scrollWidth && clientHeight == scrollHeight


如果元素纵向超出隐藏

clientWidth == scrollWidth && clientHeight < scrollHeight


image.png

<style>
      /* 文字超出一行省略 */
      .ellipsis-1 {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
      }
      /* 文字超出2行省略 */
      .ellipsis-2 {
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 2; /*限制文本行数*/
        -webkit-box-orient: vertical;
      }
      .box {
        width: 500px;
        border: 1px solid green;
        margin-top: 20px;
      }
    </style>
    <div class="box">
      把酒问月 作者: 唐代 李白 青天有月来几时?我今停杯一问之。
      人攀明月不可得,月行却与人相随。 皎如飞镜临丹阙,绿烟灭尽清辉发。
      但见宵从海上来,宁知晓向云间没。 白兔捣药秋复春,嫦娥孤栖与谁邻?
      今人不见古时月,今月曾经照古人。 古人今人若流水,共看明月皆如此。
      唯愿当歌对酒时,月光长照金樽里。
    </div>
    <div class="box ellipsis-1">
      把酒问月 作者: 唐代 李白 青天有月来几时?我今停杯一问之。
      人攀明月不可得,月行却与人相随。 皎如飞镜临丹阙,绿烟灭尽清辉发。
      但见宵从海上来,宁知晓向云间没。 白兔捣药秋复春,嫦娥孤栖与谁邻?
      今人不见古时月,今月曾经照古人。 古人今人若流水,共看明月皆如此。
      唯愿当歌对酒时,月光长照金樽里。
    </div>
    <div class="box ellipsis-2">
      把酒问月 作者: 唐代 李白 青天有月来几时?我今停杯一问之。
      人攀明月不可得,月行却与人相随。 皎如飞镜临丹阙,绿烟灭尽清辉发。
      但见宵从海上来,宁知晓向云间没。 白兔捣药秋复春,嫦娥孤栖与谁邻?
      今人不见古时月,今月曾经照古人。 古人今人若流水,共看明月皆如此。
      唯愿当歌对酒时,月光长照金樽里。
    </div>
    <script>
      let boxs = document.querySelectorAll('.box');
      for (let box of boxs) {
        console.log(box.clientWidth, box.scrollWidth);
        let div = document.createElement('div');
        div.innerHTML = [
          'clientWidth',
          box.clientWidth,
          'scrollWidth',
          box.scrollWidth,
          'clientHeight',
          box.clientHeight,
          'scrollHeight',
          box.scrollHeight
        ].join(' ');
        div.style.color = 'red';
        box.insertAdjacentElement('afterend', div);
      }
    </script>

参考

如何判断ellispsis生效了

相关文章
|
1月前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
1月前
|
JavaScript 前端开发 开发者
.js的dom元素操作
【10月更文挑战第29天】通过灵活运用这些 DOM 元素操作方法,JavaScript 可以实现丰富的网页交互效果,如动态更新页面内容、响应用户操作、创建和删除页面元素等。在实际开发中,开发者可以根据具体的需求和场景,选择合适的 DOM 元素操作方法来实现所需的功能,为用户提供更加流畅和动态的网页体验。
|
3月前
|
存储 前端开发 JavaScript
前端基础(二)_JavaScript变量、JavaScript标识符、JavaScript获取元素、JavaScript的鼠标事件
本文介绍了JavaScript变量的声明和使用、标识符的命名规则、如何获取和操作HTML元素,以及JavaScript的鼠标事件处理,通过示例代码展示了这些基础知识点在实际开发中的应用。
49 2
前端基础(二)_JavaScript变量、JavaScript标识符、JavaScript获取元素、JavaScript的鼠标事件
|
2月前
|
移动开发 JavaScript 前端开发
原生js如何获取dom元素的自定义属性
原生js如何获取dom元素的自定义属性
84 4
|
2月前
|
JavaScript
js删除数组中已知下标的元素
js删除数组中已知下标的元素
49 4
|
2月前
|
JavaScript 前端开发 索引
JS 删除数组元素( 5种方法 )
JS 删除数组元素( 5种方法 )
76 1
|
3月前
|
JavaScript 前端开发
JavaScript HTML DOM 元素 (节点)
JavaScript HTML DOM 元素 (节点)
29 2
|
3月前
|
JavaScript 前端开发
js删除数组最后一个元素
js删除数组最后一个元素
|
3月前
|
JavaScript 前端开发
js怎么定位不同的页面元素
在JavaScript中,有多种方法定位和选择页面元素。
|
3月前
|
前端开发 JavaScript
前端ES5 | js —添加元素方法
前端ES5 | js —添加元素方法