У меня проблема с примером кодирования, который я нашел в Обернуть каждую строку абзаца в промежуток . По сути, он клонирует текст в div и выводит текст, заключенный в span, в другой div.
У меня проблема в том, что в процессе клонирования слова обрезаются, потому что длина слова превышает ширина, установленная в CSS.
Пример:
<span>I’m up to something. Learning is cool, bu</span>
<span>t knowing is better, and I know the key t</span>
Есть ли способ заставить слова не переполняться? Я попытался установить переполнение: авто в css, и он не распознает его.
function trimByPixel(str, width) {
var spn = $('<span style="visibility:hidden"></span>').text(str).appendTo('body');
var txt = str;
while (spn.width() > width) { txt = txt.slice(0, -1); spn.text(txt + "..."); }
return txt;
}
var stri = $(".str").text();
function run(){
var s = trimByPixel(stri, $(".str").width()).trim()
stri = stri.replace(s,"")
$(".result").append("<span>"+s+"</span>");
if(stri.trim().length > 0){
run();
}
}
run();
$(".str").remove().delay(10);
.str{
width:300px;
}
.result span{
display:block
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="str">
I’m up to something. Learning is cool, but knowing is better, and I know the key to success. Bless up. They never said winning was easy. Some people can’t handle success, I can.
I told you all this before, when you have a swimming pool, do not use chlorine, use salt water, the healing, salt water is the healing. Put it this way, it took me twenty five years to get these plants, twenty five years of blood sweat and tears, and I’m never giving up, I’m just getting started.
</div>
<div class="result"></div>