gromo / jquery.scrollbar

jQuery CSS Customizable Scrollbar
GNU General Public License v2.0
756 stars 238 forks source link

Overflow changed #2

Closed shospodarets closed 11 years ago

shospodarets commented 11 years ago

If browser supports "overflowChanged"/"resize" events-> setInterval replaced by them. Link to description- http://www.backalleycoder.com/2013/03/18/cross-browser-event-based-element-resize-detection/

gromo commented 11 years ago

Здравствуйте, Сергей.

Большое спасибо за участие в проекте. К сожалению, я не могу принять Ваши изменения, т.к. придерживаюсь политики минимального вмешательства в оригинальное поведение элементов, а данное решение изменяет содержимое оригинального контейнера, оборачивая его содержимое в подконтейнер.

Как Вы видели в обсуждении, даже мминимально необходимое вмешательство может привести к недопониманию "почему мой код раньше изменял элемент, а теперь не работает?", подобное же вмешательство может привести к пересмотру кода и необходимостью исправить его с учётом возможности наличия подконтейнера resize-listener.

Пользователь всегда может вручную переинициализировать скролл при изменении содержимого.

shospodarets commented 11 years ago

ok. 1) Ваша реализация предусматривает оборачивание всего блока в .scroll-wrapper. 2) Моя добавляет оборачивание внутреннего содержимого в .resize-listener. Оба этих момента предполагают изменения структуры- соответственно, нужно оба их учитывать. Второй, конечно, более существенно может повлиять на поведение элемента, если изменения структуры заранее не предполагались. Если предположить, что "пользователь всегда может вручную переинициализировать скролл при изменении содержимого" - тогда ни setInterval, ни listener на overflowChanged не нужны. В любом случае, я убедился, что есть действительно хороший способ подписаться на изменение размеров отдельного элемента.