Diokuz / baron

Native scroll with custom scrollbar
MIT License
776 stars 124 forks source link

Пересчет высоты родителя в режиме горизонтального скролла #96

Closed olegdenisov closed 9 years ago

olegdenisov commented 9 years ago

После смены размера вьюпорта, допустим смена ориентации на планшете, элементы внутри блока scroller меняют свою высоту, задано в стилях через @media, а блок sсroller свою высоту не меняет. Метод update почему-то не помогает, и триггер тоже

Diokuz commented 9 years ago

Не совсем понял проблему. Scroller не меняет высоту, но должен её менять? Скролл вертикальный?

Можешь пример сделать на jsfiddle.com? Или, хотя бы, привести код инициализации барона?

olegdenisov commented 9 years ago

var scrollNews = $('#article').baron({ scroller: '.scroller', root: $('.articlelist'), bar: '.scrollerbar', track: '.scroller__track', barOnCls: 'baron_h', freeze: true, direction: 'h' });

У меня есть блок-родитель, который прокручивается по горизонтали, в нём ещё блоки-потомки, у этих потомков есть картинка и есть блок текста описания. На разрешении в 480px у потомков, описание находится справа от картинки, на разрешении в 320 под картинкой. Получается если экран в 480px, то высота потомка 150px, если экран 320px то высота потомка 300px. Так вот проблема в том, что при смене ориентации с 320 на 480 высота родителя остается прежней в 300px и образуется пространство

Diokuz commented 9 years ago

Понял. Да, это баг, связанный с починкой другого https://github.com/Diokuz/baron/blob/master/src/core.js#L536 Посмотрю.

Diokuz commented 9 years ago

Попробуй вот эту версию https://github.com/Diokuz/baron/blob/rework-horizontal-freeze/baron.js

olegdenisov commented 9 years ago

Работает:)))

Diokuz commented 9 years ago

fixed https://github.com/Diokuz/baron/pull/97

olegdenisov commented 9 years ago

только всплыл небольшой баг, браузерный скролл не скрывается

Diokuz commented 9 years ago

Хм...

  1. Убедись, что клипперу (ноде, являющейся прямым родителем скроллера - элемента, у которого появляется скроллбар) инлайново выставилась высота (это делает барон).
  2. Убедись, что высота скроллера: 1) либо зависит только от контента (нет, например, height: 100%) 2) либо задана жёстко через CSS. В любом случае, высота скроллера не должна зависеть от высоты клиппера.

Если баг не пройдёт, будем смотреть дальше) Но должен пройти.

olegdenisov commented 9 years ago
  1. выставилось инлайново
    1. высоту в стилях не указываю 2. если указываю то браузерный скролл накладывается на сэмулированный
olegdenisov commented 9 years ago

а есть возможность отключить baron? что-то подобное destroy?

olegdenisov commented 9 years ago

вылез новый баг — если нужно применить к 2-м элементам барон, то для второго инициализация не происходит

Diokuz commented 9 years ago

Баг посмотрю.

Отключить барон?) Можно просто не инициализировать)

olegdenisov commented 9 years ago

а как отменить инициализацию, допустим при смене размера вьюпорта