Tämän overflow-anchor
ominaisuuden avulla voimme kieltäytyä vieritysankkuroinnista, joka on selainominaisuus, jonka avulla sisältö voidaan ladata käyttäjän nykyisen DOM-sijainnin yläpuolelle muuttamatta käyttäjän sijaintia, kun sisältö on ladattu kokonaan.
Miksi me tarvitsemme sitä
Vieritysankkurointi on selainominaisuus, joka yrittää estää yleisen tilanteen, jossa voit vierittää verkkosivua alaspäin ennen kuin DOM on ladattu täyteen, ja kun se tapahtuu, kaikki nykyisen sijaintisi yläpuolelle ladatut elementit työntävät sinut alaspäin sivulle.
On järkevää, miksi näin tapahtuisi. On CSS-ominaisuuksia, joita käytämme elementteihin, jotka antavat heille koon (esim. width
), Muodon (esim. transform
) Ja sijainnin (esim. margin
). Jos nämä elementit eivät ole latautuneet siihen mennessä, kun olemme vierittäneet sivua alaspäin, DOM jatkaa niiden lataamista, vaikka ne ovat nykyisen näkymän ulkopuolella, ja laajenee fyysisesti, jotta tilaa tuoreille ladatuille elementeille. Kun DOM kasvaa, asemamme sivulla muuttuu vastaamaan näitä elementtejä.
Vieritysankkurointi estää kyseisen "hyppäämiskokemuksen" lukitsemalla käyttäjän sijainnin sivulla, kun DOM: ssä tapahtuu muutoksia nykyisen sijainnin yläpuolella. Tämän avulla käyttäjä voi pysyä ankkuroituna missä he ovat sivulla, vaikka uusia elementtejä ladataan DOM: iin.
overflow-anchor
Omaisuus antaa meille mahdollisuuden opt-out Scroll ankkuroiminen ominaisuus siinä tapauksessa, että se on edullista antaa sisältöä uudelleen virtauksen elementteinä ladataan.
Syntaksi
article ( overflow-anchor: (auto | none ); )
Arvot
overflow-anchor
Omaisuuden hyväksyy kaksi arvoa, jotka olennaisesti toggle onko ominaisuus on käytössä.
auto
(oletus): Mahdollistaa vierityksen ankkuroinnin sivun tai elementin siihen osaan, johon sitä käytetään.none
: Poistaa vierityksen ankkuroinnin kokonaan tai kokonaan verkkosivulta tai sulkee DOM: n osat ankkuroitavaksi, jolloin sisältö voi heijastua.
Luultavasti sovellat tätä body
, mutta voit laajentaa sen mihin tahansa valitsimeen, ja se tulee voimaan, jos kyseinen elementti vierittää.
Demo
Tässä esittelyssä, heti kun selaat yhtä laatikkoa, se lisää joukon vihreitä laatikoita kyseisen divin yläosaan. Normaalisti se työntäisi sisällön heti alas, mikä voi olla valtava häiriötekijä ja menettää paikkasi tekstissä. Kanssa overflow-anchor: auto;
vierityspaikka säilyy. overflow-anchor: none;
sallii äskettäin asetettujen div-levyjen vaikuttaa vierityskohtaan.
Katso Chris Coyierin (@chriscoyier) kynän ylivuotoankkuri CodePenistä.
Toinen asia, joka voidaan tehdä erittäin hyödylliseksi, on kiinnittää elementin vierityskohta pohjaan. Joten esimerkiksi chat-sovellus, jossa uudet viestit liitetään DOM: iin alareunassa ja haluat vierityskohdan pysyvän alhaalla ja näyttävän kaikki uudet viestit:
Katso kynä
"Pysy alhaalla" vierittämällä vieritysankkurilla Chris Coyier (@chriscoyier)
CodePenissä.
Selaimen tuki
Tästä kirjoituksesta lähtien overflow-anchor
se ei ole nykyinen W3C-standardi, vaikka ehdotetun eritelmän raporttiluonnos on luettavissa ja Chrome on hyväksynyt sen version 56 jälkeen. Mozilla harkitsee vastaavaa ominaisuutta Firefoxissa. Kun useampi selain ottaa käyttöön Selausankkurointi-ominaisuuden, voimme odottaa näkevämme lisää selaintukea, overflow-anchor
koska se antaa nimenomaisen hallinnan ominaisuuden käytöstä poistamiseen.
Nämä selaintukitiedot ovat Caniuselta, jolla on tarkempia tietoja. Numero osoittaa, että selain tukee ominaisuutta kyseisessä versiossa tai uudemmassa.
Työpöytä
Kromi | Firefox | IE | Reuna | Safari |
---|---|---|---|---|
56 | 66 | Ei | 79 | Ei |
Matkapuhelin / tabletti
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | Ei |
Lisää tietoa
- Vieritysankkurointi: Ehdotettu vieritysankkurointimäärityksen luonnos
- Chromium-blogi: Blogiteksti, jossa ilmoitetaan Chromen sisällyttävän vieritysankkurointi ja CSS-ominaisuus versioon 56
- Bugzilla-lippu nro 43114: Avaa lippu sisällyttääksesi kiinteistön Firefoxiin