El sitio web debe adaptarse en el lado móvil. Para el lado móvil H5 y web, se utilizan soluciones de diseño flexible como Bluma.
La lista utilizada en H5 usa reaccionar virtualizado para dibujar la tabla.
Para mostrar los detalles específicos de una sola fila de datos en la tabla, la solución habitual es utilizar una nueva página o una ventana emergente.
Aquí se utiliza la solución de ventana emergente. Los detalles de los datos después de hacer clic en una sola fila de datos utilizan la tarjeta modal de Bluma.
Para obtener detalles y ejemplos específicos, consulte: https://bulma.io/documentation/components/modal/
Detalles del problema:Después de hacer clic en una sola fila de datos, una ventana emergente muestra datos detallados y toda la tarjeta modal se configura en posición: fija;
No hay parte de pie de página, establezca la altura de la tarjeta modal a la altura de toda la pantalla: 100vh
Actuación:
Solución:
Solución propia de modal-card:Desbordamiento de JS + CSS: oculto
Agregue dinámicamente clases CSS a la página html en la ventana emergente a través de JS
if ($modalButtons.length > 0) { $modalButtons.forEach(function ($el) { $el.addEventListener('click', function () { var target = $el.dataset.target; openModal(target); } ); });}función openModal(destino) { var $destino = document.getElementById(destino); rootEl.classList.add('está-recortado'); $target.classList.add('está-activo');}Utilice overflow:hidden para desactivar el desplazamiento de página
está recortado {desbordamiento: oculto! importante}
Cuando se cierra la ventana emergente, elimine la clase CSS de la página a través de JS: is-clipped
function closeModals() { rootEl.classList.remove('está-recortado'); $modals.forEach(function ($el) { $el.classList.remove('está-activo'); });}
Sin embargo, después de probar esta solución en la aplicación, se descubrió que no solucionaba el problema y que los problemas anteriores seguían ocurriendo.
posición: solución fijaPosición JS + CSS:fijo + desplazamientoArriba
Ideas de planes:
Antes de la ventana emergente:
const scrollTop = global.document.documentElement.scrollTop || global.pageYOffset || global.document.body.scrollTop;global.document.documentElement.style.position = 'fijo';this.scrollTop = scrollTop;
Cierra la ventana emergente:
closeModalHandler = () => { const { closeOrderHistoryModal } = this.props; global.document.documentElement.style.position = ''; global.pageYOffset = this.scrollTop; .document.body.scrollTop = this.scrollTop; closeOrderHistoryModal();}
Lo anterior es el contenido completo de este artículo. Espero que sea útil para el estudio de todos. También espero que todos apoyen VeVb Wulin Network.