За последние 24 часа нас посетили 22258 программистов и 1023 робота. Сейчас ищут 633 программиста ...

Сьставить текст из слов

Тема в разделе "JavaScript и AJAX", создана пользователем ureech, 25 янв 2023.

  1. ureech

    ureech Активный пользователь

    С нами с:
    13 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    Привет. Я разбил текст на слова
    Код (Text):
    1. var text = str.split(' ')
    . Посчитал их количество.
    Код (Text):
    1. var count = text.length
    Теперь хочу собрать предложения определённой длины( в пикселях). Все данные есть. Нужна помощь собрать текст
    Код (Text):
    1. var pageWidth = 900;
    2.     var line = []
    3.     var long = 0
    4. for (let i = 0; i < count; i++){
    5.  
    6. long += +textWidth[i] + emptySpace // длина слова + длина пробела
    7.         if(long<=pageWidth){
    8.             line += text[i]+' '; // тут только первое предложение
    9.         }
    10.  
    11. }
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.820
    Симпатии:
    736
    Адрес:
    Татарстан
    ерунда какая-то ... откуда вы можете знать ширину символов в пикселях? она зависит от css свойств - о которых php ничего не может знать
     
  3. ureech

    ureech Активный пользователь

    С нами с:
    13 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    При чём тут php? Вроде это раздел js, нет?
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.820
    Симпатии:
    736
    Адрес:
    Татарстан
    точно... не туда посмотрел )
     
  5. ureech

    ureech Активный пользователь

    С нами с:
    13 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    Бывает)
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.820
    Симпатии:
    736
    Адрес:
    Татарстан
    а не проще ли свойство css overflow использовать? визуально ограничит... а по факту - весь текст будет ... для сео хорошо)
     
  7. ureech

    ureech Активный пользователь

    С нами с:
    13 окт 2015
    Сообщения:
    49
    Симпатии:
    0
    Нет. Там задача другая. Нужно определённое количество строк в определённом пространстве. Пока сделал так
    Код (Text):
    1.       for (let i = 0; i < count; i++){
    2.         textWidth[i] = getWidthOfText(text[i],'Arial','18px')
    3.         long += +textWidth[i] + emptySpace
    4.         if(long<=pageWidth){
    5.             line += text[i]+' ';
    6.         }else {
    7.             long = +textWidth[i] + emptySpace
    8.             line += '</br>'+text[i]+' ';
    9.           }
    10.        }
    Но это рабочий вариант. Нужно каждую строку теперь обернуть в <p>...</p>