Ako vytvoriť efekt vznášania obrázka v CSS

Ako vytvoriť efekt vznášania obrázka v CSS
Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

Efekty vznášania sa obrázka môžu vašej webovej stránke pridať ďalšiu úroveň lesku. Vytvárajú plynulý efekt, vďaka čomu je navigácia v obrazových galériách alebo kolotočoch príjemnejšia. Najlepšie na tom je, že tieto efekty môžete vytvárať iba pomocou CSS a bez JavaScriptu.





Na svojich obrázkoch môžete vytvoriť rôzne štýly animácií. Patrí medzi ne rozmazanie alebo priblíženie pozadia, vyblednutie alebo posunutie textu a zmena farby pozadia.





VYUŽITIE VIDEA DŇA POKRAČUJTE V OBSAHU POKRAČOVANÍM

Vytvorenie HTML pre

Začnite vytvorením index.html súbor v prázdnom priečinku v počítači a potom súbor otvorte v textovom editore. Vo vnútri súboru vytvorte kostru HTML a do úvodných značiek tela a uzatvárania tela pridajte nasledujúce označenie:





 <div class="grid"> 
  <div class="image-wrapper">
    <img class="blur" src="https://picsum.photos/500?random=1" alt="">

    <div class="content fade">
      Lorem ipsum dolor sit amet consectetur adipisicing elit. Soluta ad
      sed at amet blanditiis ullam ipsum delectus sit recusandae vel!
    </div>
  </div>

  <div class="image-wrapper">
    <img class="zoom blur" src="https://picsum.photos/500?random=2" alt="">

    <div class="content fade">
      Lorem ipsum dolor sit amet consectetur adipisicing elit. Soluta ad
      sed at amet blanditiis ullam ipsum delectus sit recusandae vel!
    </div>
  </div>

  <div class="image-wrapper">
    <img class="blur" src="https://picsum.photos/500?random=3" alt="">

    <div class="content slide-left">
      Lorem ipsum dolor sit amet consectetur adipisicing elit. Soluta ad
      sed at amet blanditiis ullam ipsum delectus sit recusandae vel!
    </div>
  </div>

  <div class="image-wrapper">
    <img class="grey" src="https://picsum.photos/500?random=3" alt="">

    <div class="content slide-left">
      Lorem ipsum dolor sit amet consectetur adipisicing elit. Soluta ad
      sed at amet blanditiis ullam ipsum delectus sit recusandae vel!
    </div>
  </div>
</div>

Ide o mriežkový kontajner so štyrmi obalmi obrázkov. Prvky div s image-wrapper triedy slúžia ako obal pre obrázok a jeho zodpovedajúci text. K obrázku a obsahu každej sekcie je pridaná jedinečná sada tried.

Vo vnútri šablóny štýlov budete zacieliť na tieto prvky podľa ich názvov tried a aplikujte rôzne štýlové a animačné efekty. Text sa predvolene nezobrazí; zobrazí sa iba vtedy, keď umiestnite kurzor myši na obálku obrázka a obrázok bude mať počas tohto procesu rôzne efekty.



Pridanie základného CSS

Teraz, keď ste vytvorili HTML, je čas upraviť ho pomocou CSS. Vytvor style.css súbor a odkaz na tento hárok štýlov z vášho súboru HTML vo vnútri súboru sekcia:

 <link rel="stylesheet" href="style.css">

Vo svojom vnútri style.css súbor, prvá vec, ktorú musíte urobiť, je vynulovať okraj na tele a nastaviť nejaký spodný okraj:





inovácia systému Windows 10 nemá dostatok miesta na disku
 body { 
  margin: 0;
  margin-bottom: 20rem;
}

Ďalej musíte premeniť vonkajšiu nádobu na a Mriežka CSS, ktorú môžete použiť na rozloženie prvkov v dvoch rozmeroch . Nasledujúci kód vytvorí mriežku s toľkými stĺpcami alebo riadkami, ktoré sa zmestia. Minimálna veľkosť každého stĺpca je 300 pixelov a maximálna veľkosť je 1 zlomok kontajnera:

 .grid { 
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

Keďže chcete umiestniť text vzhľadom na jeho kontajner, musíte nastaviť polohu vzhľadom na obal obrázka:





 .image-wrapper { 
  position: relative;
  overflow: hidden;
}

Ďalším krokom je štylizácia obrázka. Zobrazte obrázok ako prvok bloku, nastavte ho na šírku celého kontajnera a umiestnite ho do stredu kontajnera:

 .image-wrapper > img { 
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center;
}

Pokiaľ ide o text, umiestnite ho do stredu a vytvorte priehľadnú svetlosivú farbu pozadia:

 .image-wrapper > .content { 
  position: absolute;
  inset: 0;
  font-size: 2rem;
  padding: 1rem;
  background: rgba(255, 255, 255, .4);
  display: flex;
  align-items: center;
  justify-content: center;
}

Uložte súbor CSS a otvorte ho index.html vo vašom prehliadači. Mali by ste nájsť stránku podobnú tej na obrázku nižšie.

  Snímka obrazovky s obrázkami v mriežke

Zapnutie prechodu a textov

Teraz, keď ste na obrázky použili základné štýly, ďalším krokom je pridať k nim nejakú animáciu. Začnite pridaním prechodu do oboch obrázkov a ich zodpovedajúceho textu:

 .image-wrapper > img, 
.image-wrapper > .content {
  transition: 200ms ease-in-out;
}

To znamená, že všetky prechodové efekty (t. j. zoslabenie, priblíženie a rozmazanie) budú trvať 200 milisekúnd a budú mať rovnakú krivku časovania.

Animácia Fade-In a Blur

Prvý štýl animácie v texte mizne. Keď umiestnite kurzor myši na konkrétny obal obrázka, obsah, ktorý má vyblednúť trieda bude mať tento efekt (animácia zoslabenia a zoslabenia) aplikovaný na ňu. Dosiahnete to nastavením nepriehľadnosti na nulu a jej zmenou na jednotku, keď myšou prejdete na konkrétny obal obrázka:

 .image-wrapper > .content.fade { 
  opacity: 0;
}

.image-wrapper:hover > .content.fade {
  opacity: 1;
}

Ak súbor uložíte a skontrolujete svoj prehliadač, uvidíte aktívnu animáciu prechodu. Môžete si však tiež všimnúť, že text je trochu ťažko čitateľný (ak je obrázok ostrý a má veľa kontrastu). Pripomeňme, že všetky obrázky majú aj názov triedy rozmazať . Toto slúži na rozmazanie obrázkov, aby sa medzi nimi a textom pridal potrebný kontrast:

 image-wrapper:hover > img.blur { 
  filter: blur(5px)
}

Teraz, keď umiestnite kurzor myši na obrázok, môžete vidieť, že sa len rozmaže. Môžete zvýšiť hodnotu pixelov, aby bolo rozmazanie na obrázkoch výraznejšie, čím sa pridá väčší kontrast medzi ním a textom.

Pridanie ďalších efektov

Ďalšie efekty sú posúvanie textu zľava, zväčšovanie obrázka a pridávanie odtieňov šedej do obrázka. Tu je kód na dosiahnutie všetkých troch efektov:

 .image-wrapper > .content.slide-left { 
    transform: translateX(100%)
}

.image-wrapper:hover > .content.slide-left {
    transform: translateX(0%)
}

.image-wrapper:hover > img.grey {
    filter: greyscale(1)
}

.image-wrapper:hover > img.blur {
    filter: blur(5px)
}

.image-wrapper:hover > img.zoom {
    transform: scale(1.1)
}

Uložte súbor, potom prejdite do prehliadača a umiestnite kurzor myši na každý obrázok. Mali by ste vidieť rôzne efekty v akcii.

  Snímka obrazovky obrázka s aktívnou animáciou

Na dokončenie zasúvacích efektov môžete vytvoriť tri ďalšie obaly obrázkov, z ktorých každý obsahuje obrázok a text. Každý kus textu bude mať názov triedy vysúvanie , zošmyknúť sa, alebo mierne-vpravo . Potom by ste odovzdali správnu hodnotu pixel, em alebo rem , vnútri transformovať () funkcia na vytvorenie všetkých troch efektov.

CSS Grid a Flexbox

CSS Grid a Flexbox sú dve funkcie, ktoré vám umožňujú vytvárať fantastické rozloženia pre váš web. Môžete jednoducho vytvoriť prakticky akékoľvek rozloženie, ktoré chcete, a prispôsobiť riadky a stĺpce podľa svojho vkusu. Stĺpce budú tiež v predvolenom nastavení responzívne. Keď sa naučíte, kedy používať jednu cez druhú, pomôže vám to stať sa špičkovým vývojárom CSS o jedno percento.