Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите убрать полосу прокрутки при анимации контента (https://javascript.ru/forum/dom-window/57277-pomogite-ubrat-polosu-prokrutki-pri-animacii-kontenta.html)

Lifemaster 28.07.2015 02:40

Помогите убрать полосу прокрутки при анимации контента
 
Приветствую всех, уважаемые форумчане! Возникла задача избавиться от полосы прокрутки блока с фиксированной высотой при анимации контента. Первое что пришло в голову - создать функцию, которая отслеживает переполнение блока и вызывать ее часто (например, через каждые 20 мс) в процессе анимации контента. Идея не совсем нравится своей рациональностью, да и подмигивает полоса прокрутки в процессе анимации. Вот мой реализованные вариант - http://jsfiddle.net/98f3now9/

Прошу помощи подсказать как решить задачу рациональнее и правильнее. Заранее очень благодарен!

ksa 28.07.2015 09:05

Цитата:

Сообщение от Lifemaster
избавиться от полосы прокрутки блока

http://htmlbook.ru/css/overflow

join 28.07.2015 09:07

Lifemaster,

как вариант плавности.

http://jsfiddle.net/98f3now9/2/

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

Lifemaster 28.07.2015 12:55

overflow: hidden - это понятно, но я забыл сказать - контент должен скролиться, но без полосы прокрутки. При этом высота блока должна быть фиксированной. Я пробовал всякие плагины подключать, типа niceScroll.js, но они не годятся, так как плохо отслеживают положение скрола в процессе анимации.

Задачу можно было решить, если бы у элементов было событие overflow, которое срабатывало всякий раз как только контент превышает размеры блока. Но можно создать и пользовательское событие, но как его вешать? Как сказать браузеру - отслеживай переполняется ли блок контентом пока идет анимация?

Lifemaster 29.07.2015 01:29

Уважаемые форумчане, неужели нет ни у кого мыслей по этому поводу? :(

join 29.07.2015 09:06

Цитата:

Сообщение от Lifemaster
overflow: hidden - это понятно, но я забыл сказать - контент должен скролиться, но без полосы прокрутки. При этом высота блока должна быть фиксированной.

Оберните ( блок с полосой прокрутки ) блоком-родителем. Блок-родитель фиксирован по высоте + overflow: hidden + ширина его меньше, чем потомок на ширину полосы прокрутки( ширина скролл-бара ). Это скроет полосу прокрутки визуально. Все на css.

ПС^^: этот вариант легок в реализации, но вам он не подойдет. Слишком прост.

Lifemaster 31.07.2015 02:59

И так не подойдет, потому как в процессе анимации скрол то появляется, то исчезает (в зависимости от величины скрывающего контента) и еще ширину скролбара как определить без JS?


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