::after e ::before no css3

pessoal esses dias tava vendo alguns sites bacanas e vi alguns que faziam algo parecido, quando abre a página o elemento tem uma formatação e quando rola para baixo ele é mostrado com outra formatação, isso pode ser feito com esses dois pseudo-elementos ou com js?