Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 11.01.2023, 11:41
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Сообщение от ureech
С обрезанием строк думаю решить путём расчёта высоты строки. Насчёт ресайза пока не понял).
Ну тогда надо делать высоту окна странице кратной высоте строки, при этом надо учитывать разрывы между абзацами (или не делать их вовсе, а только смещение первой строки в абзаце). И все строки одной высоты (или кратной высоты)
Если сделать так, то и этот скрипт справится.

Последний раз редактировалось voraa, 11.01.2023 в 11:58.
Ответить с цитированием
  #12 (permalink)  
Старый 12.01.2023, 20:44
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

К сожалению вариант voraa, мне не подходит. У меня другая логика. На данный момент стоит такой вопрос. В моём тексте, например 40 отрезков <p>...</p>. При подсчёте среднего числа кнопок для этого текста получаю, например 4 кнопки. Подсчёт вёлся с округлением в большую сторону. Все <p>...</p> разного размера, поэтому выводить по 10 не вариант. Нужно выводить те, что в видимой области окна. +- пару строк роли не играют. Можно будет прокрутить.
str = $(str).filter("p");
count= str.length // общее количество тегов <p>...</p>
clientCount = Math.ceil($(window).height()/count);// среднее количество в окне
count_button = Math.ceil($(document).height()/count)/clientCount; // количество кнопок
/** перебираю теги **/
 
 for (var i = 0; i < str.length; i++) {  
 ???
   }


Как я рассуждаю. При переборе тегов мне нужно получить количество тегов в видимой области окна. То есть заполнять $(window).height() тегами. Предварительно получая количество строк в теге и вычисляя их ширину. Осталось изобразить всё это на "бумаге"). Как всё сделать по отдельности ещё представляю, но вот в кучу собрать...)
Ответить с цитированием
  #13 (permalink)  
Старый 12.01.2023, 21:58
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

А ширина и высота области, в которой показывается страница фиксирована?
Напрашивается такое решение.
Делаете div со стилями
{
      width: 400px; /* подставить ширину своей области*/
      position: absolute;
       visibility: hidden;
}

Запихиваете в него свой текст в innerHTML
Потом пробегаетесь по параграфам в этом div и берете их offsetTop и offsetTop+offsetHeigth.
Это уже поможет вычислить какие параграфы к какой странице относятся.
Далее просто в свою основную область выводите нужные параграфы.

Последний раз редактировалось voraa, 12.01.2023 в 22:34.
Ответить с цитированием
  #14 (permalink)  
Старый 13.01.2023, 09:24
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

На данный момент размеры не фиксированные. Изначально не хотелось возиться с размерами). Придётся под устройства подгонять и тп.Но если не выкручусь видимо придётся к этому вернуться.
Ответить с цитированием
  #15 (permalink)  
Старый 13.01.2023, 10:15
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Сообщение от ureech
На данный момент размеры не фиксированные
Тогда отслеживать resize и пересчитывать.
Ответить с цитированием
  #16 (permalink)  
Старый 13.01.2023, 19:51
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Чего то попробовал сделать (самому интересно стало, вдруг пригодится когда)
Файл большой, код сюда не вмещается
Даю ссылку на Гугл диск

Основная идея - Делаем невидимое окно, размерами такое же, как область просмотра. В него загружаем текст. И в нем по размерам считаем, какие параграфы помещаются на страницу.

При ресайзе количество страниц может измениться. Я сделал, что после ресайза мы пересчитываем количество страниц, и переходим на ту страницу, что бы был виден параграф, который был первым на видимой странице до ресайза.

Что смог прокомментарил, что бы понятнее было
Ответить с цитированием
  #17 (permalink)  
Старый 13.01.2023, 19:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

voraa,
Ответить с цитированием
  #18 (permalink)  
Старый 23.01.2023, 10:22
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

voraa,
Вот только вернулся к данной теме. Изменился приоритет задач. Перекинули на другое. Сейчас буду что то пробовать. Отпишусь, в любом случае
Ответить с цитированием
  #19 (permalink)  
Старый 24.01.2023, 10:44
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

voraa,
просмотрел ваш пример. Как я понял вы водите блоки по тегу <p>. А если в теге всего одно предложение)?
У меня такая ситуация. Я разделил текст по тегам, но в теге разное количество текста. И в одном clientHeight 5.8 тегов помещается, а в другом 8.2). К тому же с переносами строк тоже не ахти как. Вот не знаю как это решить лучше. То ли блоки из тегов составлять, то ли изначально считать символы в строке то ли...?
Ответить с цитированием
  #20 (permalink)  
Старый 24.01.2023, 10:49
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Сообщение от ureech
Как я понял вы водите блоки по тегу <p>
Ну так вы об этом вначале писали.
Сообщение от ureech
А если в теге всего одно предложение)?
Какая разница сколько. В тексте есть понятие - параграф. А что там, сколько предложений - не важно.
Сообщение от ureech
И в одном clientHeight 5.8 тегов помещается, а в другом 8.2).
Не понял
Сообщение от ureech
К тому же с переносами строк тоже не ахти как.
Что не так?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как ускорить индексацию страниц, которые создаются фильтром? baustof Общие вопросы Javascript 0 06.12.2021 17:18
Пагинация на JS orloff Общие вопросы Javascript 2 30.10.2020 20:57
Спарсить несколько страниц (Google Chrome Extension) libertyswift Javascript под браузер 6 20.01.2017 10:43
Пагинация, создание массива страниц osdohtem jQuery 0 25.11.2014 13:25
Поиск страниц по ключевым словам stormageddon Events/DOM/Window 5 22.06.2013 21:09