Blur effect with SVG | Эффект стекла

HTML
<article class='glass down'> <h1 class='toggle' onclick='toggle()'>Pelican</h1> <p class='unimportant'><em>Pel"i*can</em>, n. Etym: [F. pélican, L. pelicanus, pelecanus, Gr. paraçu.] [Written also pelecan.] 1. (Zoöl.)</p> <p><em>Defn:</em> Any large webfooted bird of the genus of Pelecanus, of which about a dozen species are known. They have an enormous bill, to the lower edge of which is attached a pouch in which captured fishes are temporarily stored. <p class='unimportant'><em>Note:</em> The American white pelican (Pelecanus erythrorhynchos) and the brown species (P. fuscus) are abundant on the Florida coast in winter, but breed about the lakes in the Rocky Mountains and British America.</p> </article> <svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <defs> <filter id="blur"> <feGaussianBlur stdDeviation="5"/> </filter> </defs> </svg>
CSS
/* LAYOUT */ html, body, article, .glass::before { width: 100%; height: 100%; overflow: hidden; } .glass { position: relative; } .glass::before { z-index: -1; display: block; position: absolute; content: ' '; } /* BACKGROUNDS */ body { background-image: url('http://img0.reactor.cc/pics/post/full/Anime-%D0%B4%D0%B5%D0%B2%D1%83%D1%88%D0%BA%D0%B0-%D0%9C%D0%B5%D1%85%D0%B0%D0%BD%D0%B8%D0%BA-1369482.jpeg'); background-size: cover; } .glass::before { background-image: url('http://img0.reactor.cc/pics/post/full/Anime-%D0%B4%D0%B5%D0%B2%D1%83%D1%88%D0%BA%D0%B0-%D0%9C%D0%B5%D1%85%D0%B0%D0%BD%D0%B8%D0%BA-1369482.jpeg'); /* Prefix free isn't picking up this one */ -webkit-filter: url('#blur'); filter: url('#blur'); -webkit-filter: blur(10px); filter: blur(10px); background-size: cover; opacity: 0.8; } .glass { background-color: black; } /* TRANSFORMATIONS */ .glass.down { /* Fallback for browsers that don't support 3D Transforms */ transform: translateY(100%) translateY(-7rem); transform: translateY(100%) translateY(-7rem) translateZ(0); } .glass.down::before { transform: translateY(-100%) translateY(7rem); transform: translateY(-100%) translateY(7rem) translateZ(0); } .glass.up, .glass.up::before { transform: translateY(0); transform: translateY(0) translateZ(0); } article{ color:rgba(255,255,255,.7); text-shadow: 0 1px 1px rgba(0,0,0,.8); } /* TRANSITIONS */ .preload * { /* wait until document is loaded before transitioning */ transition: none !important; } .glass, .glass::before { transition: transform 0.5s ease-out; } /* TYPOGRAPHY, ETC */ body { font-family: 'Ubuntu', sans-serif; font-size: 100%; } h1 { font-size: 5rem; line-height: 1.4; font-weight: bold; text-align: center; padding: 0 7rem; border-bottom: 2px solid rgba(0, 0, 0, 0.1); cursor: pointer; margin:0; } h1::before { position: absolute; left: 1rem; top: 1rem; background-image: url('http://image.flaticon.com/icons/svg/226/226185.svg'); content: ' '; display: block; width: 5rem; height: 5rem; transition: transform 0.2s ease-out 0.5s; } .up h1::before { transform: rotate(180deg); } em { font-style: normal; font-weight: bold; } p { font-size: 1.8rem; line-height: 1.4; max-width: 30em; margin: 1.4em auto; padding: 0 1em; } @media (max-width: 500px), (max-height: 300px) { p.unimportant { display: none; } p { font-size: 1.4rem; margin: 0.5em auto; } }
JAVASCRIPT
function toggle() { var button = document.querySelector('.toggle'); var overlay = document.querySelector('.glass'); if (overlay.className === 'glass down') { overlay.className = 'glass up'; } else { overlay.className = 'glass down'; } } window.onload = function() { /* transition support ~= classList support */ var preload = document.querySelector('.preload'); preload.classList.remove('preload'); }
Expand for more options Login