Uma das tarefas (consideradas) complicadas na codificação de front-end é verificar se um elemento está visível ou não. A maneira muito ingênua de verificar se um elemento está visível (ou seja, se tem presença ou ocupa espaço na página) é verificar seu valor de estilo de exibição:
var incorrectIsVisible = window.getComputedStyle(someElement, null).getPropertyValue('display'); // "inline", "inline-block", "block", etc.
Observe que estou não verificar a opacidade também porque um elemento invisível ainda ocupa espaço na tela. O problema com o código acima é que o senhor pode obter o estilo de um filho, mas isso pode não ter importância se o pai estiver definido como display: none
. Por exemplo, se o estilo do filho display
da criança for inline-block
, mas o pai do elemento display
é o estilo none
o elemento filho ainda não está visível. Curiosamente, a verificação do estilo offsetHeight
do elemento filho sinalizará se o elemento provavelmente está visível:
var correctIsVisible = someElement.offsetHeight; // 0 for hidden, more than 0 for displaying
Se o elemento for filho de um elemento que é display: none
, o offsetHeight
será 0 e, portanto, o senhor sabe que o elemento não está visível, apesar de seu display
. Novamente, lembre-se de que a opacidade não é considerada e que um elemento que é opacity: 0
ainda é tecnicamente visível, ocupando espaço.
Criação de efeitos de paralaxe de rolagem com CSS
Introdução Há muito tempo, os sites com o chamado efeito “parallax” são muito populares… Caso o senhor não tenha ouvido falar desse efeito, ele basicamente inclui diferentes camadas de imagens que se movem em diferentes direções ou com diferentes velocidades. Isso leva a uma…
CSS @supports
A detecção de recursos via JavaScript é uma prática recomendada do lado do cliente e por todos os motivos certos, mas, infelizmente, essa mesma funcionalidade não está disponível no CSS. O que acabamos fazendo é repetir as mesmas propriedades várias vezes com cada prefixo de navegador. Que nojo. Outra coisa que…