Веб-сайт необходимо адаптировать для мобильной версии. Для мобильных H5 и веб-страниц используются решения с гибкой версткой, такие как Bluma.
Список, используемый в H5, использует виртуализацию реакции для рисования таблицы.
Чтобы отобразить конкретные сведения об одной строке данных в таблице, обычное решение — использовать новую страницу или всплывающее окно.
Здесь используется всплывающее окно. Детали данных после нажатия на одну строку данных используют модальную карту Bluma.
Подробную информацию и примеры можно найти по адресу: https://bulma.io/documentation/comComponents/modal/.
Детали проблемы:После щелчка по одной строке данных во всплывающем окне отображаются подробные данные, а для всей модальной карты устанавливается положение: фиксированное;
Нижний колонтитул отсутствует, установите высоту модальной карты на высоту всего экрана: 100vh
Производительность:
Решение:
собственное решение модальной карты:Переполнение JS + CSS: скрыто
Динамически добавлять CSS-классы на HTML-страницу во всплывающем окне через JS.
if ($modalButtons.length > 0) { $modalButtons.forEach(function ($el) { $el.addEventListener('click', function () { var target = $el.dataset.target; openModal(target); } ); });} function openModal(target) { var $target = document.getElementById(target); rootEl.classList.add('обрезано'); $target.classList.add('is-active');}Используйте overflow:hidden, чтобы отключить прокрутку страницы.
обрезано {переполнение: скрыто! важно}
Когда всплывающее окно закроется, удалите класс css страницы через JS: is-clipped
function closeModals() { rootEl.classList.remove('is-cipped'); $modals.forEach(function ($el) { $el.classList.remove('is-active'); });}
Однако после тестирования этого решения в приложении выяснилось, что оно не решило проблему, и вышеуказанные проблемы все равно возникали.
позиция: фиксированное решениеJS + CSS Позиция: фиксированная + прокруткаTop
Идеи плана:
Перед всплывающим окном:
const ScrollTop = global.document.documentElement.scrollTop || global.pageYOffset || global.document.body.scrollTop;global.document.documentElement.style.position = 'fixed';this.scrollTop = ScrollTop;
Закройте всплывающее окно:
closeModalHandler = () => { const { closeOrderHistoryModal } = this.props; global.document.documentElement.style.position = ''; global.pageYOffset = this.scrollTop; global.document.documentElement.scrollTop = this.scrollTop global; .document.body.scrollTop = this.scrollTop; closeOrderHistoryModal();}
Выше приведено все содержание этой статьи. Я надеюсь, что она будет полезна для изучения всеми. Я также надеюсь, что все поддержат сеть VeVb Wulin.