O site precisa ser adaptado no lado mobile. Para mobile H5 e web, são utilizadas soluções de layout flexível como o bluma.
A lista usada em H5 usa react-virtualized para desenhar a tabela
Para exibir os detalhes específicos de uma única linha de dados na tabela, a solução usual é usar uma nova página ou uma janela pop-up.
A solução de janela pop-up é usada aqui. Os detalhes dos dados após clicar em uma única linha de dados usam o cartão modal da Bluma.
Para detalhes e exemplos específicos, consulte: https://bulma.io/documentation/components/modal/
Detalhes do problema:Depois de clicar em uma única linha de dados, uma janela pop-up exibe dados detalhados e todo o cartão modal é definido como position:fixed;
Não há parte de rodapé, defina a altura do modal-card para a altura da tela inteira: 100vh
Desempenho:
Solução:
Solução própria do modal-card:Estouro de JS + CSS: oculto
Adicione dinamicamente classes CSS à página HTML na janela pop-up por meio de 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('está cortado'); $target.classList.add('está ativo');}Use overflow:hidden para desativar a rolagem da página
está cortado { estouro: oculto! importante}
Quando a janela pop-up for fechada, exclua a classe css da página através de JS: is-clipped
function closeModals() { rootEl.classList.remove('is-clipped'); $modals.forEach(function ($el) { $el.classList.remove('is-active'); });}
Porém, após testar esta solução no aplicativo, constatou-se que ela não resolveu o problema e os problemas acima ainda ocorreram.
posição: solução fixaPosição JS + CSS: fixo + scrollTop
Planeje ideias:
Antes da janela pop-up:
const scrollTop = global.document.documentElement.scrollTop || global.pageYOffset || global.document.body.scrollTop;global.document.documentElement.style.position = 'fixed';this.scrollTop = scrollTop;
Feche a janela pop-up:
closeModalHandler = () => { const { closeOrderHistoryModal } = this.props; global.document.documentElement.style.position = '' global.pageYOffset = this.scrollTop; .document.body.scrollTop = this.scrollTop; closeOrderHistoryModal();}
O texto acima é todo o conteúdo deste artigo. Espero que seja útil para o estudo de todos. Também espero que todos apoiem a Rede VeVb Wulin.