Skip to content

Instantly share code, notes, and snippets.

@arufian
Last active August 29, 2015 14:08
Show Gist options
  • Select an option

  • Save arufian/cf773069d7f9ecd0b33a to your computer and use it in GitHub Desktop.

Select an option

Save arufian/cf773069d7f9ecd0b33a to your computer and use it in GitHub Desktop.

Revisions

  1. arufian revised this gist Oct 31, 2014. 1 changed file with 42 additions and 11 deletions.
    53 changes: 42 additions & 11 deletions gistfile1.js
    Original file line number Diff line number Diff line change
    @@ -1,12 +1,43 @@
    var makeNewLine = function(texta) {
    var retval = texta;
    if (texta.length > 10) {
    retval = '';
    var iter = texta.length / 10;
    for (var i = 0; i < iter; i++) {
    retval += texta.substring(i * 10, ((i + 1) * 10)-1);
    retval += '<br />';
    function binSearch(text, searchLen) {
    var left = 0, right = text.length;
    var breakPos = left, lastBreakPos = right;
    while (Math.abs(lastBreakPos - breakPos) > 1) {
    lastBreakPos = breakPos;
    breakPos = Math.floor((left+right)/2);
    if (searchLen < getTextWidth(text.substring(0, breakPos)))
    right = breakPos - 1;
    else
    left = breakPos + 1;
    }
    return Math.min(breakPos, lastBreakPos);
    }

    function getTextWidth(text) {
    var ea = document.createElement("span");
    ea.innerHTML = text;
    document.body.appendChild(ea);
    var len = ea.offsetWidth;
    document.body.removeChild(ea);
    return len;
    }

    function linebreak(text, maxLen) {
    var breakPos = 0;
    var out = "";
    var part1 = text, part2 = "";
    if (getTextWidth(part1) > maxLen) {
    while (getTextWidth(part1) > maxLen) {
    var breakPos = binSearch(part1, maxLen);
    part2 = part1.substring(breakPos, part1.length);
    part1 = part1.substring(0, breakPos);
    out += part1 + "<br/>";
    part1 = part2;
    }
    }
    return retval;
    }
    return out + part2;
    }
    else
    return text;
    }

    // excample:
    linebreak(el.innerHTML, 150);
  2. arufian created this gist Oct 30, 2014.
    12 changes: 12 additions & 0 deletions gistfile1.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,12 @@
    var makeNewLine = function(texta) {
    var retval = texta;
    if (texta.length > 10) {
    retval = '';
    var iter = texta.length / 10;
    for (var i = 0; i < iter; i++) {
    retval += texta.substring(i * 10, ((i + 1) * 10)-1);
    retval += '<br />';
    }
    }
    return retval;
    }