Получить позицию на странице

S5
На сайте с 04.01.2010
Offline
77
851

Всех с прошедшими! Появилась интересная задача - есть определенный большой текст, необходимо сохранять "контрольные точки" когда пользователь его пролистывает. Все бы хорошо, если бы не много но. Поставновка задачи - кроссплатформенная (хотелось бы до ИЕ7 хотя бы), верстка (ширина колонки текста) резиновая, шрифты и отстпуты соответственно у слов разные.

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

Собственно как получить отступ от начала страницы\блока текста я понимаю, но считать руками всю "математику" смещения по каким-то усредненным значениям для шрифтов имхо нелогично. Возможно есть какое-то более элегантное решение?

DiAksID
На сайте с 02.08.2008
Offline
236
#1

ловите: Bootstrap Affix слева вертикальный навбар -> как раз эта самая Affix навигация по "портянке"

show must go on !!!...
S5
На сайте с 04.01.2010
Offline
77
#2

Спасибо, это я и ручками умею. Возможно не так выразился. Мне нужно поймать точку "выхода" со страницы, что бы при последующем заходе на страницу прыгнуть именно в место выхода - и человек смог продолжить чтение.

kdv12
На сайте с 05.12.2011
Offline
52
#3
sg552:
Спасибо, это я и ручками умею. Возможно не так выразился. Мне нужно поймать точку "выхода" со страницы, что бы при последующем заходе на страницу прыгнуть именно в место выхода - и человек смог продолжить чтение.

Может автосохранение делать к примеру каждые 10 секунд? И аяксом отправлять в бд позицию на странице для определенного пользователя. А при заходе брать из бд значения и прокручивать страницу.

Разработка сайтов любой сложности на 1С-Битрикс. Бесплатные консультации.
DiAksID
На сайте с 02.08.2008
Offline
236
#4
sg552:
Спасибо, это я и ручками умею...

ну тогда "ручками" на выходе в куки скролл-топ записать, а на входе подкрутить, что мешает? или в/из БД, как предыдущий оратор подсказал?

C
На сайте с 04.02.2005
Offline
291
#5

По таймеру запоминать куки, привязанные к location и к тексту, по отношению к top окна.

При загрузке страницы, восстанавливать положение.

Если это что-то корпоративное, то по таймеру отправлять аяксом положение текста относительно топа, затем при загрузке делать редирект с hash на запомненное положение.

Положение текста не высчитывать, а высчитывать, например толко положение параграфов/абзацев.

Вариант третий. при скролинге запоминать +- два/пять слов(10-15 символов) (для уникальности индекса) относительно топа. При загрузке - поиск этих фраз, и установка скрола

S5
На сайте с 04.01.2010
Offline
77
#6

>>По таймеру запоминать куки, привязанные к location и к тексту, по отношению к top окна.

>>в бд позицию на странице для определенного пользователя

То что вы советуете, это сохранение х координаты относительно начала. При банальном изменении ширины блока\размера шрифта\межстрочного интервала все детит в тар-тарары.

>>Положение текста не высчитывать, а высчитывать, например толко положение параграфов/абзацев.

Уже тоже пришли к этой мысли спасибо. После загрузки строится таблица номер абзаца - позиция Х относительно начала, при скроле обсчитываем смещение относительно начала документа - высота хидера. Вариант третий к сожалению не подойдет т.к. на 20 страницах текста он уже дает нехилую "погрешность". Спасибо за ответы, задача попервой показалась действительно интересной, но быстро решилась :)

DiAksID
На сайте с 02.08.2008
Offline
236
#7

на самом деле не просто так бросил ссылку на Буутстрап - была подобная задача. после кучи потерянного времени и тестов пришли к выводу - нехрен баловать народ: портянка разбивается на семантические параграфы + Аффикс и пусть юзверь один раз напряжётся и жмякнет по нужной закладке, чем забыв что делал в прошлый раз или придя уже с другой целью будет, чертыхаясь, отматывать скролом...

S5
На сайте с 04.01.2010
Offline
77
#8

Я минималист до мозга костей, и если есть возможность сделать что-то на чистом js/jQuery, остаюсь приверженцем этого варианта.

>>портянка разбивается на семантические параграфы

это займет куда больше времени. а если параграфов будет хх-сят? получится портянка бутстрапа

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

http://www.modernlib.ru/books/sharma_robin_s/monah_kotoriy_prodal_svoy_ferrari/read/

Мне проще дернуть её себе и почитывать в свободное время с комфортом и уютом :) тем более давно хотел сделать собственную мини-библиотеку

DiAksID
На сайте с 02.08.2008
Offline
236
#9
sg552:
Я минималист до мозга костей, и если есть возможность сделать что-то на чистом js/jQuery, остаюсь приверженцем этого варианта...

теперь в ходу термин "чистый jQuery" 😂 ? вообще, как себе представляете такого зверя ? в цитатник.

народ как то справляется с многостраничными "содержаниями" к мануалам и вполне себе доволен. а насчёт "портянки загладок для xx-параграфов" странно читать от человека, который вещи подобные Affix спокойно делает "ручками" - модальные окна, хотя бы, религия "чистого jQuery" запрещает использовать ?

ЗЫ (по теме): есчо раз, опыт показал, что подобная автоматизация в 80-90% случаях вызывает лишь раздражение юзверя и приводит к обратному от ожидаемого результату. такой вот незатейливый эмпирический факт.

S5
На сайте с 04.01.2010
Offline
77
#10

>>ЗЫ (по теме): есчо раз, опыт показал, что подобная автоматизация в 80-90% случаях вызывает лишь раздражение юзверя и приводит к обратному от ожидаемого результату. такой вот незатейливый эмпирический факт.

Ну юзверей к счастью планируется не больше десятка моих друзей

>>теперь в ходу термин "чистый jQuery"

будьте внимательней

>>народ как то справляется с многостраничными "содержаниями"

мне ненужно содержание, мне нужно просто прододжить читать дома с того места, где я остановился на работе\планшете\много других девайсов

>>модальные окна

вы видно вообще не поняли сути задачи :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий