Ako vytvoriť čistý CSS efekt
CSS nemá pseudoklas zacielenie na udalosti kliknutí, a toto predstavuje jeden z nich najväčšie body bolesti vývojárov front-end. Najbližšia pseudotrieda je : aktívny
ktorý štýl prvku za dobu, ktorú používateľ stláča nad svojou myšou.
Tento efekt je však krátkodobý: akonáhle užívateľ uvoľní myš, : aktívny
už nefunguje. Musíme nájsť iný spôsob emulovať udalosť kliknutia v CSS.
Tento príspevok bol napísaný v odpovedi na žiadosť čitateľa a vysvetlí, ako to zacieľte na udalosť kliknutia s čistým CSS v konkrétnom prípade použitia, zväčšenie obrazu.
Môžete vidieť konečný výsledok nižšie - riešenie iba pre CSS obrázok zväčšiť kliknutím.
Kedy používať iba riešenie CSS
Predtým, než začnem, chcem povedať, že pri zväčšení obrazu doporučujeme iba metódu CSS (ktorá mení rozmery obrázka) len vtedy, keď chcete jednoposteľová alebo a skupina málo obrázkov mať funkciu zväčšenia.
Pre riadny galéria, JavaScript poskytuje väčšiu flexibilitu a efektívnosť.
Front-end techniky, ktoré použijeme
Teraz, keď vás upozornili, poďme sa rýchlo pozrieť 3 kľúčové techniky budeme používať:
-
Značku HTML ktorý umožňuje prehliadačom vytvoriť prepojiteľné oblasti nad obrázkom. Prečítajte si viac o
prvkom v mojom staršom príspevku.
-
USEMAP
atribútštítok, ktorý spojí obraz na mapu obrázkov.
-
: cieľová
Pseudo-trieda CSS ktorý predstavuje prvok, ktorý bol zacielený pomocou jeho voliča ID.
1. Vytvorte základňu HTML
Najprv vytvorte základňu HTML. V nižšie uvedenom kóde pridáme obrázok, ktorý sa má zväčšiť a zväčšiť & ikony zatvorte tlačidlo na priblíženie a vzdialenie.
Dôležité je, aby mal obrázok na zväčšenom obrázku a tlačidlo Zavrieť musí mať odkaz, ktorý má href = "#"
atribút, vysvetlím, prečo neskoršie v príspevku.
2. Pridajte CSS
Spočiatku ikona Zavrieť by sa nemali zobrazovať. pozície
, okraj-
, ľavý
, a dno
vlastnosti miesto Rozbaľte a zatvorte ikony kde chceme, aby boli - v pravom hornom rohu obrázku.
pointer-events: žiadne;
pravidlo umožňuje udalosti myši prejsť ikonou Rozbaliť a dosiahnuť obrázok.
.img výška: 150px; šírka: 200px; . zatvoriť background-image: url ("Close-icon.png"); opakovanie pozadia: opakovanie; dno: 418px; zobrazenie: žiadne; výška: 32px; vľavo: 462px; margin-top: -32px; pozícia: relatívna; šírka: 32px; .expand bottom: 125px; margin-left: -32px; margin-right: 16px; pointer-events: žiadne; pozícia: relatívna;
3. Pridajte mapu obrázkov
Na mape obrázkov sa zobrazuje oblasti s možnosťou kliknutia by mala byť v pravom hornom rohu obrazu priamo pod ikonou Rozbaľte a o jej veľkosti. Umiestnite prvku pred prvým
tag v HTML. V ďalšom kroku vytvoríme obrázok na mape.
Vo vyššie uvedenom kódovom bloku tag označuje tvaru, veľkosti a URI spojiteľnej oblasti vnútri obrázkovej mapy. Pre obdĺžnikový tvar,
tvar
atribút trvá rect
hodnota a hodnota štyri hodnoty z coords
atribút predstavuje vzdialenosť v pixeloch medzi:
- ľavý okraj obrazu a ľavý okraj oblasti odkazu
- horný okraj obrazu a horný okraj oblasti odkazu
- ľavý okraj obrazu a pravý okraj oblasti odkazu
- horný okraj obrazu a spodný okraj oblasti odkazu
Hodnota href
atribút musí byť atribút hash identifikátor obrazu (to je dôvod, prečo by mal obrázok mať id
).
4. Prilepte obrázok na mapu obrázkov
Pridajte USEMAP
atribút obrázku tak, aby väzbu na mapu obrázkov. Jeho hodnota musí byť hash reprezentácia názov
atribút štítok sme pridali v kroku 3.
Kliknite na oblasť obrázkových máp teraz leží za tlačidlom Rozbaľ. Keď používateľ klikne na tlačidlo Rozbaľte, je to oblasť, na ktorú sa dá kliknúť, v skutočnosti kliknete - nezabudnite, že sme urobili tlačidlo Rozšíriť “zjazdný” s pointer-events: žiadne;
v kroku 2.
Týmto spôsobom používateľ zacieľuje na samotný obrázok kliknutím na ňu a po kliknutí na tlačidlo URI sa zobrazí prípona "# Img1"
identifikátor fragmentu.
5. Štýl : cieľová
Pseudo-Class
Až pokým "# Img1"
identifikátor fragmentu je na konci identifikátora URI, cieľový obrázok môže byť v štýle : cieľová
pseudo-class
Rozmery cieleného obrázka sa zvýšia, zobrazí sa tlačidlo Zavrieť a tlačidlo Expand sa skryje.
.img: cieľ výška: 450px; šírka: 500px; .img: target + .close zobrazenie: blok; .img: cieľ + .close + .expand zobrazenie: žiadne;
Ako funguje tlačidlo Zavretie
Ako tlačidlo Zavrieť bolo pridané ako obrázok na pozadí (krok 2) a je vlastne značku s
href = #
atribút (krok 1), po jeho kliknutí odstráni identifikátor fragmentu od konca identifikátora URI. Preto to tiež odstráni : cieľová
pseudo-class z obrázka a obrazu sa vráti na predchádzajúcu veľkosť.
Teraz je len efekt CSS-zoom-on-click, skontrolujte demo nižšie alebo si prečítajte trochu viac o teórii za obrazovými mapami v ďalšej časti.
Informácie o pozadí: Prečo
a nie
?
Teraz už určite chápete, že najdôležitejšou vecou pre toto riešenie, ktoré je len pre CSS, je pracovať zacieľte obrázok pomocou tlačidla href = "# imgid"
atribút, čo by sa mohlo vykonať aj pomocou namiesto mapy obrázkov.
To môže byť pravda, pokiaľ ide o obrázky, pomocou prvok je vhodnejší. Je ešte dôležitejšie, keď chcete priblíženie Stalo sa kliknutím na väčšiu plochu obrázka skôr ako len na ikone Rozbaľte,
vám dáva jednoduché riešenie.
štandardné
hodnota pre tvar
atribút vytvorí obdĺžniková spojovacia plocha, ktorá pokrýva celý obraz. Ak by ste mali používať namiesto toho by ste ho museli kódovať, aby ste pokryli obrázok, a na rovnaký účel budete možno musieť použiť obalový prvok.
Ak chcete hovoriť aj o námietkach tohto riešenia, Ukazovateľ-events
Vlastnosť CSS (ktorú sme použili v kroku 2) je podporovaná programom Internet Explorer len od verzie 11.
Ak chcete podporiť IE prehliadače pred tým, budete chcieť buď použiť namiesto
, alebo obrázok zväčšený kliknutím kdekoľvek na ňom (v tomto prípade nebude potrebné ikonu Expand).