Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <div id="ellipsed">
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Reiciendis, cupiditate minima voluptas iste adipisci natus illum debitis facilis non ea, deserunt saepe repudiandae quisquam odit. Obcaecati reprehenderit eaque quasi, consequatur?
  </div>
</body>
</html>
 
#ellipsed {
  width: 200px;
  height: 100px;
  border: 1px solid red;
}
 
function ellipsizeTextBox(el) {
    if (el.scrollHeight <= el.offsetHeight) {
      return;
    }
    let wordArray = el.innerHTML.split(' ');
    const wordsLength = wordArray.length;
    let activeWord;
    let activePhrase;
    let isEllipsed = false;
    for (let i = 0; i < wordsLength; i++) {
      if (el.scrollHeight > el.offsetHeight) {
        activeWord = wordArray.pop();
        el.innerHTML = activePhrase = wordArray.join(' ');
      } else {
        break;
      }
    }
    let charsArray = activeWord.split('');
    const charsLength = charsArray.length;
    for (let i = 0; i < charsLength; i++) {
      if (el.scrollHeight > el.offsetHeight) {
        charsArray.pop();
        el.innerHTML = activePhrase + ' ' + charsArray.join('')  + '...';
        isEllipsed = true;
      } else {
        break;
      }
    }
    if (!isEllipsed) {
      activePhrase = el.innerHTML;
      let phraseArr = activePhrase.split('');
      phraseArr = phraseArr.slice(0, phraseArr.length - 3)
      el.innerHTML = phraseArr.join('') + '...';
    }
  }
let el = document.getElementById('ellipsed');
ellipsizeTextBox(el);
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers