Le site Web doit être adapté du côté mobile. Pour les côtés mobiles H5 et Web, des solutions de mise en page flexibles telles que Bluma sont utilisées.
La liste utilisée dans H5 utilise React-Virtualized pour dessiner le tableau
Afin d'afficher les détails spécifiques d'une seule ligne de données dans le tableau, la solution habituelle consiste à utiliser une nouvelle page ou une fenêtre pop-up.
La solution de fenêtre contextuelle est utilisée ici. Les détails des données après avoir cliqué sur une seule ligne de données utilisent la carte modale de Bluma.
Pour des détails spécifiques et des exemples, veuillez vous référer à : https://bulma.io/documentation/components/modal/
Détails du problème :Après avoir cliqué sur une seule ligne de données, une fenêtre contextuelle affiche des données détaillées et la carte modale entière est définie sur position:fixed ;
Il n'y a pas de pied de page, définissez la hauteur de la carte modale sur la hauteur de tout l'écran : 100vh
Performance:
Solution:
la propre solution de modal-card :Débordement JS + CSS : caché
Ajoutez dynamiquement des classes CSS à la page HTML sous la fenêtre contextuelle via 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('is-clipped'); $target.classList.add('is-active');}Utilisez overflow:hidden pour désactiver le défilement des pages
est-clipped {débordement: caché! important}
Lorsque la fenêtre pop-up est fermée, supprimez la classe css de la page via JS : is-clipped
function closeModals() { rootEl.classList.remove('is-clipped'); $modals.forEach(function ($el) { $el.classList.remove('is-active'); });}
Cependant, après avoir testé cette solution dans l'application, il a été constaté qu'elle ne résolvait pas le problème et que les problèmes ci-dessus persistaient.
position : solution fixePosition JS + CSS : fixe + scrollTop
Idées de plans :
Avant la fenêtre pop-up :
const scrollTop = global.document.documentElement.scrollTop || global.pageYOffset || global.document.body.scrollTop;global.document.documentElement.style.position = 'fixed';this.scrollTop = scrollTop;
Fermez la fenêtre contextuelle :
closeModalHandler = () => { const { closeOrderHistoryModal } = this.props; global.document.documentElement.style.position = ''; global.pageYOffset = global.document.documentElement.scrollTop = this.scrollTop; .document.body.scrollTop = this.scrollTop; fermerOrderHistoryModal();}
Ce qui précède représente l’intégralité du contenu de cet article. J’espère qu’il sera utile à l’étude de chacun. J’espère également que tout le monde soutiendra le réseau VeVb Wulin.