Esto limitarlo a sin embargo muchas líneas que desea limita a, y es sensible
Una idea que nadie ha sugerido, haciéndolo basado en la altura del elemento y luego quitándolo de allí.
violín - https://jsfiddle.net/hutber/u5mtLznf/ < - versión ES6
Pero básicamente quieres coger la altura de la línea del elemento, bucle a través de todo el texto y parar cuando su a una altura ciertas líneas:
'use strict';
var linesElement = 3; //it will truncate at 3 lines.
var truncateElement = document.getElementById('truncateme');
var truncateText = truncateElement.textContent;
var getLineHeight = function getLineHeight(element) {
var lineHeight = window.getComputedStyle(truncateElement)['line-height'];
if (lineHeight === 'normal') {
// sucky chrome
return 1.16 * parseFloat(window.getComputedStyle(truncateElement)['font-size']);
} else {
return parseFloat(lineHeight);
}
};
linesElement.addEventListener('change', function() {
truncateElement.innerHTML = truncateText;
var truncateTextParts = truncateText.split(' ');
var lineHeight = getLineHeight(truncateElement);
var lines = parseInt(linesElement.value);
while (lines * lineHeight < truncateElement.clientHeight) {
console.log(truncateTextParts.length, lines * lineHeight, truncateElement.clientHeight);
truncateTextParts.pop();
truncateElement.innerHTML = truncateTextParts.join(' ') + '...';
}
});
CSS
#truncateme {
width: auto; This will be completely dynamic to the height of the element, its just restricted by how many lines you want it to clip to
}
¿Quieres decir que truncar algo como ' 'se trata de una muy larga string'' a'' Esto es una ve ...' ', etc? –
¿Puedes darnos un ejemplo? ¿Y a qué te refieres con TEXTO? – jzd
@El Ronnoco exactamente! –