Здравствуйте.
Можно ли как-то запретить удаление <div class="panel"></div>
из body после закрытия панели?
Из-за этого не сохраняется скролл контента при последующем открытии панели.
P.S. Можно вручную обойти, сохранять в on.close() и восстанавливать в on.open(), но раньше вроде бы не удалялся div…
Потребовалось еще в панели вывести длинный список с помощью Infinite Scroll и с восстановлением scroll позиции после открытия панели совсем все печально.
Подскажите, пожалуйста, каким способом можно отменить удаление блока class=“panel” из тела html после закрытия панели?..
Держи панель в app root component, в DOM.
Имеется в виду в <div id="app" class="framework7-root"></div>
?
Панель там и находится…
HTML
<div class="panel panel-left panel-cover"><div class="view view-left"><div class="page"></div></div></div>
Инициализация
lPanel=app.panel.create({el:'.panel-left',visibleBreakpoint:960});
Открытие панели
lPanel.open();
Закрытие панели
lPanel.close()
либо
<a class="link icon-only panel-close" data-panel=".panel-left"></a>
После открытия панели она меняет свое положение в DOM?
Если да, то после закрытия, она возвращается на прежнее место в DOM?
Положение не меняется, после удаления-возврата остается там же.
При первом открытии F7 добавляет класс panel-in, после закрытия F7 меняет класс на panel-out и удаляет блок из body.
После открытия F7 обратно возвращает в body блок панели с классом panel-in.
P.S. Тоже самое происходит и с правой панелью.
Добавлено:
Найдена зависимость такого поведения.
Если есть класс panel-init, то панель не удаляется из body после закрытия.
Можно в kitchen-sink вручную в просмотре кода удалить panel-init и после этого панель начнет удалятся после закрытия.
Это баг?
Не удаляется у меня, да она и не должна удаляться если она была инициализирована внутри app.root.
Да, оказалось, что панель после закрытия не удаляется, а перемещается в конец блока <div id="app" class="framework7-root"></div>
(визуально сразу не обратили внимание, казалось, что просто пропадает).
А после открытия снова поднимается вверх
В kitchen-sink после обновления страницы повторить уже не удается, странно.
Вот gif, записанный со своей демки:
Как можно запретить эти перемещения блока панели?..
Никак нельзя. Где она у вас изначально была? Она изначально должна быть перым элементом в famework7-root
<div id="app">
<div class="login-screen"><div class="view"><div class="page" id="login-screen"></div></div></div>
<div class="statusbar"></div>
<div class="views safe-areas">
<div class="navbar no-shadow mainnavbar"><div class="navbar-bg"></div><div class="navbar-inner mainnavbar-inner" id="mnavbarinner"></div></div>
<div class="tabs-animated-wrap"><div class="tabs">
<div class="view tab" id="view_map"><div class="page"></div></div>
<div class="view tab" id="view_amd"><div class="page"></div></div>
<div class="view tab" id="view_htr"><div class="page"></div></div>
<div class="view tab" id="view_wel"><div class="page"></div></div>
</div></div>
</div>
<div class="panel panel-left panel-cover"><div class="view view-left"><div class="page"></div></div></div>
<div class="panel panel-right panel-cover"><div class="view view-right"><div class="page"></div></div></div>
<div class="popup sets-popup"><div class="view view-sets"><div class="page"></div></div></div>
<div class="popup maps-popup popup-tablet-fullscreen"><div class="view view-maps"><div class="page"></div></div></div>
<div class="popup add0-popup popup-tablet-fullscreen"><div class="view view-add0"><div class="page"></div></div></div>
<div class="popup add1-popup popup-tablet-fullscreen"><div class="view view-add1"><div class="page"></div></div></div>
<div class="popup add2-popup popup-tablet-fullscreen"><div class="view view-add2"><div class="page"></div></div></div>
<div class="popup json-popup popup-tablet-fullscreen"></div>
</div>
Даже не было мыслей, что есть зависимость в порядке расположения, в доках вроде бы нигде не указано…
Панели надо в самый вверх поднять над login-screen или между statusbar и views?..
Порядок должен быть такой:
- statusbar
- panel
- views
- модальные окна (popup, login screen)