代码之家  ›  专栏  ›  技术社区  ›  Ramazan Chasygov

使用范围API截断文本

  •  0
  • Ramazan Chasygov  · 技术社区  · 8 年前

    我有一个带文本的div,我想截断它,在一个div之后只剩下可以容纳的文本。代码如下。在互联网上我只找到了一个插件,这取决于JQuery,但我知道,它可能与 Range ,如果有人有经验,请告诉我,如何做到这一点。

    .container {
      height: 60px;
      border: 1px solid black;
    }
    <div class="container">
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
    </div>
    2 回复  |  直到 8 年前
        1
  •  2
  •   Andrey Petrov    8 年前

    您可以使用以下内容:

    const container = document.querySelector('.container');
    let lines = container.querySelectorAll('.text');
    
    const bottomLine = container.getBoundingClientRect().bottom;
    for (let line of lines) {
      if (line.getBoundingClientRect().bottom > bottomLine) {
        container.removeChild(line);
      }
    }
    .container {
      height: 60px;
      border: 1px solid black;
    }
    <div class="container">
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
    </div>
        2
  •  0
  •   Abhijit Kar ツ    8 年前

    看一看

    .container {
      height: 100px;
      border: 1px solid black;
      overflow: auto;       /* Try using hidden, scroll, auto or overlay */
    }
    <div class="container">
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
      <div class="text">Lorem lorem lorem lorem lorem</div>
    </div>

    说明:您可以制作容器

    1. 可滚动:使用溢出:自动;
    2. 不可滚动:Just plain通过使用overflow:hidden隐藏其余内容