Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Расчитать кол-во блоков при прокрутки. (https://javascript.ru/forum/dom-window/65972-raschitat-kol-vo-blokov-pri-prokrutki.html)

ureech 18.11.2016 12:52

Расчитать кол-во блоков при прокрутки.
 
Здравствуйте.Хочу сделать прилипающий блок при прокрутки.Блоки справа в сайдбаре. Их кол-во не известно. Как рассчитать кол-во последних блоков которые полностью помещаются на экране, что бы потом применить скрипт для залипания к верхнему из этих блоков. Блок будет залипать к верхнему меню, оно фиксировано. Между футером и последним блоком в сайдбаре оставляю небольшой пробел.

Coriolan161 18.11.2016 13:21

ureech,
Цитата:

рассчитать кол-во последних блоков
1) Достать коллекцию блоков и спросить length

Цитата:

которые полностью помещаются на экране
2) на экране или в сайдбаре?

3) Надо брать window.innerHeight - меню - пробел. Это будет доступная высота для размещения блоков (если у тебя всяких там других отступов нет)

4) Делишь допустимую высоту на размер коллекции, берешь целую часть. Это допустимое количество плотно прилегающих к друг другу блоков

5) Счетчик заводи

6) Надо сравнивать скроллТоп окна с офсетТопопами блоков. Если попал то счетчик + 1 и прилипай

7) Это продолжается пока счетчик не больше допустимого числа блоков. В противном случае не надо прилипать

8) Наверно надо будет для блоков вводить переменную прилип/не прилип. Это нужно когда обратно вверх будешь мотать

9) Я мог затупить

ureech 18.11.2016 13:38

Цитата:

Сообщение от Coriolan161
3) Надо брать window.innerHeight - меню - пробел. Это будет доступная высота для размещения блоков (если у тебя всяких там других отступов нет)

Между блоками в сайдбаре есть отступы
Цитата:

Сообщение от Coriolan161
на экране или в сайдбаре?

На экране.

Coriolan161 18.11.2016 13:55

ureech,
Если на экране, то window.innerHeight - меню - пробел перед футером == допустимая высота для размещения блоков

Ты это.. скажи мне блоки у тебя плотно прилипать должны или будет отступ?

ureech 18.11.2016 14:10

Между блоками будут отступы 10рх,от верха браузера до блока 60рх и от футера 10рх


Часовой пояс GMT +3, время: 12:05.