As consultas de mídia são uma ótima maneira de alterar o comportamento de forma programática, dependendo do estado de exibição. Podemos direcionar estilos para dispositivos, proporção de pixels, tamanho da tela e até mesmo para impressão. Dito isso, também é bom ter eventos JavaScript que também nos permitem alterar o comportamento. O senhor sabia que tem à sua disposição eventos antes e depois da impressão?

Eu sempre usei @media print em folhas de estilo para controlar a exibição de impressão, mas o JavaScript oferece beforeprint e afterprint eventos:

function toggleImages(hide = false) {
  document.querySelectorAll('img').forEach(img => {
    img.style.display = hide ? 'none' : '';
  });
}

// Hide images to save toner/ink during printing
window.addEventListener('beforeprint', () => toggleImages(true))
window.addEventListener('afterprint', () => toggleImages());

Pode parecer estranho, mas considerar a impressão é muito importante, especialmente quando seu site é centrado em documentação. Em meus primeiros dias na Web, tive um cliente que só “visualizava” seu site a partir de impressões. Estilizar com @media print geralmente é a melhor opção, mas esses eventos JavaScript podem ajudar!

  • Criar classes com espaço de nome com o MooTools

    O MooTools sempre foi um pouco criticado por não usar e padronizar inerentemente classes JavaScript baseadas em namespaced, como faz o Dojo Toolkit. Muitos desenvolvedores criam suas classes como globais, o que geralmente é mal visto. Na maioria das vezes, não concordo com essa posição, mas cada um tem a sua. De qualquer forma…

  • 6 coisas que o senhor não sabia sobre o Firefox OS

    Firefox OS está em todas as notícias de tecnologia e por um bom motivo: A Mozilla finalmente deu aos desenvolvedores da Web a plataforma de que precisam para criar aplicativos da maneira como os criam há anos: com CSS, HTML e JavaScript. O Firefox OS tem se aprimorado rapidamente…