Hogyan lehet meghatározni a "Képernyőfelbontás" és a "Böngésző ablakméret" a Javascript és a JQuery. Az elemek méretei és a weblap görgetése Az aktuális görgetés megszerzése

Ebben a leckében tartjuk a tulajdonságait a Window objektumot, amellyel akkor kap a méret a munkaterületet a böngésző ablak (innerwidth és innerheight), az ablak méretét is (OuterWidth és OuterHeight), helyét A felhasználói képernyő bal felső sarkához képest (ScreenLeft és ScreenOnt) és a pozíciók görgetése (Pagexffset és Pagetyoffset).

Innerwidth és Innerheight tulajdonságok

Úgy tervezték, hogy megkapják a böngésző látható munkaterületének méretét. Azok. Az Innerwidth és Innerheight tulajdonságok úgy vannak kialakítva, hogy megkapják a terület szélességét és magasságát, amelyben a HTML-dokumentum megjelenik. Ezek a tulajdonságok csak olvashatók és visszatérnek a pixelben.

Például kapja meg a böngésző látható munkaterületének magasságát és szélességét:

A látható nézetablak szélessége (Widthcontenarea):

A látható nézetablak szélessége (magasságcontenarea):

Külső verzió és külsőhégali tulajdonságok

Úgy tervezték, hogy megkapják a teljes böngészőablak méretét, azaz Beleértve az eszköztárakat, a görgetősávot, az állapotsávot, az ablakhatárokat stb. A külső verzió és a külsőhulladék tulajdonságai csak olvashatók, és visszaadják az ablak szélességét és magasságát képpontokban.

Például kapja meg a böngészőablak magasságát és szélességét:

Böngésző Windows szélessége (Widthwindow):

Böngésző ablakmagassága (Heighwindow):

Tulajdonságok ScreenLeft (ScreenX) és ScreenTont (Screeny)

A felhasználói képernyő bal felső sarkában lévő böngészőablak bal felső szögének vagy dokumentumának jobb felső szögének koordinátáit.

Ebben az esetben a ScreenLeft és a Screentop tulajdonságai az Internet Explorerben és a Screenx és a Screeny tulajdonságai Mozilia Firefoxban működnek. A Chrome, a Safari böngészők és más hasonló böngészők is felhasználhatók a ScreenLeft és a ScreenTont és a ScreenX és a Screeny tulajdonságok tulajdonságaihoz.

Ezen tulajdonságok használatakor figyelembe kell venni azt a tényt, hogy egyes böngészők visszaállíthatják a dokumentum bal felső szögének koordinátáját, és néhány böngésző koordinálja az ablak bal felső sarkát. A ScreenLeft tulajdonságok (screenx) és a screingont (screeny) csak olvashatók, és visszaadják a távolságértékeket a bal oldali sarokhoz viszonyítva vízszintesen és függőleges képpontokban.

Például visszavonja egy üzenetet a koordináta x és a bal sarokban az aktuális böngészőablak (dokumentum), mint a bal felső sarokban:

Ismerje meg a koordinátákat

Oldalxoffset tulajdonságok (scrollx) és pagetyoffset (scrollx)

Számos képpontot kapnak, amelyekhez a dokumentumot vízszintes (pagneffset) vagy függőleges (pagetyoffset) irányba görgetve az ablak relatív bal felső sarkában. Tulajdonságok Scrollx és Scrollly ekvivalensek szerinti tulajdonságainak PageXoffSet és Pagetyoffset. Ezek a tulajdonságok csak olvashatók.

Például, hogy megjelenítse a képpontok számát, amelyhez a dokumentum görgethető a vízszintes (PageXofFSET) és függőleges (pagetyoffset) irányba.

Ismerje meg a görgetősáv pozícióit

Helló! A lecke témájának folytatásában egy ilyen kérdést weboldalként fogunk megfontolni, és manipuláljuk a böngésző méretét. Hogyan találhatok böngészőszélességet? Hogyan lehet görgetni a JavaScript weboldalon? Válaszok ezekre a kérdésekre, azt hiszem, ebben a leckében találja meg.

A böngészőablak látható részének szélessége / magassága

Az elem ügyfélszívítási / magasság tulajdonságai csak a látható ablak területének szélessége / magassága.


Nem ablak.Innerwidth / Magasság

Meg kell jegyezni, hogy az IE8 kivételével minden böngésző támogathatja az ablakok tulajdonságait.Innerwidth / Innerheight. Mentse az aktuális ablakméretet.

Mi a különbség? Kérdezed. Ez minden bizonnyal kicsi, de rendkívül fontos.

A CRIENTWIDTH / Magasság tulajdonságok, ha van egy görgetősáv, adja vissza a szélességet / magasság belsejében, hozzáférhető a teljes dokumentumhoz, és az ablakhoz.

Ha az oldal jobb oldala a görgetősávot veszi, akkor ezek a sorok különbözőek:

Riasztás (ablak.Innerwidth); // az összes teljes figyelmeztető ablak szélessége (dokumentum.documentElement.clientwidth); // szélesség kevesebb görgetés

Általában csak a rendelkezésre álló ablak szélességét érdekli, például valamit rajzolni, azaz mínusz a görgetősáv. Ezért a dokumentáció.Clientwidth-t gyakran használják.

A weboldal szélessége / magassága, figyelembe véve a görgetést

Igen, elméletileg az oldal látható része a Dokumentelem.Clientwidth / Magasság, de a teljes méret, figyelembe véve a görgetősávot analógia, documentelement.scrollwidth / scrollheight.

Ez igaz minden rendes elemre.

De az oldalakkal ezekkel a tulajdonságokkal kapcsolatban problémát okozhat, ha a görgetés ott van, akkor nem. Ebben az esetben helytelenül dolgoznak. Azt kell mondanom, hogy a Chrome / Safari és az Opera böngészők, a scrollsáv hiányában, a dokumentumelem értéke ebben az esetben is kevesebb, mint a dokumentumelem.

Ez a probléma kifejezetten a dokumentációhoz fordulhat elő.

De lehetséges megbízhatóan meghatározni az oldal méretét, figyelembe véve a görgetést, egyszerűen a maximális tulajdonságok maximumát:

Var scrollvisota \u003d math.Max \u200b\u200b(dokumentum.sody.scrollvisota, document.documentElement.scrollheight, document.body.offetvisota, document.documentemelment.offsetheight, document.bodo.clientvisa, document.documentElement.clientheight); Riasztás ("magasság, figyelembe véve a görgetést:" + scrollvisota);

Az aktuális görgetés megszerzése

Ha a hagyományos elem aktuális görgetéssel rendelkezik a scrollleft / scrolltopban.

Mi van az oldalról?

Az a tény, hogy a legtöbb böngésző helyesen feldolgozza a dokumentációt.Scrolllell / top lekérdezés, azonban a Safari / Chrome / Opera hibákkal rendelkezik, mert dokumentumot kell használnia.

Nos, annak érdekében, hogy teljesen megkerülhesse ezt a problémát, használhatja az ablak tulajdonságait.Pagexoffset / Pagetyoffset:

Riasztás ("az aktuális görgetés felülről:" + window.pageyoffset); Riasztás ("jelenlegi görgetés a bal oldalon:" + window.pagexoffset);

Ezek az összes tulajdonság:

  • Az IE8 nem támogatott.
  • Csak elolvashatják őket, de lehetetlen változni.

Ha az IE8 nem aggódik, akkor egyszerűen ezeket a tulajdonságokat használjuk.

A Cross-Browser verzió az IE8-mal lehetőséget ad a dokumentációra:

Var scrollltop \u003d window.pageyoffset || document.documentemelment.scrolltop; Riasztás ("aktuális görgetés:" + scrolltop);

Görgetés módosítása Oldal: Scrollto, Scrollby, Scrollintoview

Annak érdekében, hogy az oldalt a JavaScript segítségével gördítsük, minden elemet teljesen betölteni kell.

A ScrollTop / Scrollleft szokásos elemeiben elvileg módosíthatja, és ugyanakkor az elem görgethető.

Senki sem lehet ugyanúgy, mint az oldal. Minden böngészőben, amellett, hogy a Chrome / Safari / Opera, akkor lépjünk egyszerű telepítés document.documentelement.scrolltop, és a megadott - akkor érdemes használni Document.body.ScrollTop erre. És minden tökéletesen fog működni.

De van egy másik, univerzális megoldás - az oldalablakok speciális görgetési módjai.Scrollby (x, y) és ablak.Scrollo (PAGEC, PAGET).

  • A Scrollby (X, Y) módszer görgeti a jelenlegi koordinátái.
  • A Scrollto (PageX, PAGENCH) módszer görgeti az oldalt a megadott koordinátákhoz a teljes dokumentumhoz képest. Ez egyenértékű lesz a ScrollLelt / ScrollTop tulajdonságok telepítésével. A dokumentum kezdetének görgetéséhez megadhatja a koordinátákat (0,0).

scrollindoview.

Az Elem.scrollLintoview módszer (felső) az elemre kell hívnia, és görgetnie kell az oldalt úgy, hogy az elem a tetejére van-e, ha a felső paraméter igaz, és az alján, ha a felső a FALSE. Ráadásul, ha ez a felső paraméter nincs megadva, akkor ez igaz.

Tilalom görgetés

Vannak olyan helyzetek, amikor egy "nem zúzott" dokumentumot kell készíteni. Például, ha a nagy párbeszédpanel megjelenik a dokumentum felett, hogy a látogató görgethessen ezen az ablakon, de nem maga a dokumentum.

Annak érdekében, hogy megtiltsák az oldal görgetését, elegendő a document.stody.style.ovlow \u003d "rejtett" tulajdonság.

A dokumentum helyett bármely olyan elem lehet, akinek a görgetése tilos.

De ennek a módszernek a hátránya, hogy maga a görgetősáv önmagában eltűnik. Ha elfoglalta a szélességet, akkor most ez a szélesség felszabadul, és az oldal tartalma kibővül, a "ugrás" szöveg, mindent megtesz az üres helyen.

EREDMÉNYEK

  • Az ablak látható részének méretének megszerzéséhez ingatlant használ: Document.DocumentElement.clientWidth / Magasság
  • Mert figyelembe véve a méret a görgetősáv kell használni: var scrollHeight \u003d Math.max (document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight , Document.DocumentElement .clientheight);

Amikor az interfészek kialakítása a helyszíneken gyakran használnia kell a JavaScriptet. Természetesen rossz, de bizonyos helyzetben egyszerűen lehetetlen mindent teljesen végrehajtani a CSS-en.

A leginkább fogságban van, hogy a böngészőablak szélességét vagy magasságát további manipulációkhoz határozzák meg. A téma szerinti összes információ alatt.

Hol lehet hasznos?

Nem fogok beszélni mindenkinek, de lenyűgözött számomra az integrációban a TextPattern "-val" mindenféle galériával, csúszkákkal stb., Amennyiben mindent tiszta JS-re írtak. A JS-hez szorosan kötött dolgok ritkák, de még mindig találkoznak, így ez a jegyzet megjelent.

Meghatározhatja a 2 módot: JS vagy JQUERY.

A szélesség vagy magasság meghatározása tiszta JS-vel

Ez a legelőnyösebb módon, mivel a JavaScript motor szinte minden modern böngészővel rendelkezik. Még a mobil böngészők is megtanultak dolgozni a JS-vel.

Természetesen lehetőség van arra, hogy a felhasználó kezelje a JS feldolgozását a böngészőben, de számomra úgy tűnik számomra, az ilyen "furcsa emberek" nem annyira, mivel szinte minden webhely a JS-n dolgozó megoldásokat használja.

A JS-ben meghatározni képernyőméretekFunkciókat kell használnia:

Screen.width // Képernyő szélessége.Height // Képernyőmagasság

Itt van egy értelmetlen példa:

Ha azt használja, hogy helyezze el néhány elemet az oldalon, akkor a legjobb megoldás nem fogja használni, nem a képernyő méretét, hanem böngésző ablakméretek. JS-ben ez így történik:

Document.body.clientwidth // böngésző szélességű dokumentum.body.clientHeight // böngészőmagasság

Ennek megfelelően itt van egy értelmetlen alkalmazás:

A böngésző méretének meghatározása jquery használatával

Személy szerint az alábbiakban ismertetett módszert használom. Ez a módszer csak akkor működik, ha korábban csatlakoztatta a JQuery könyvtárat az oldalon. Minden olyan webhelyen, amelyet meg kell tennem, ez a könyvtár a Standard de / Infact.

A JQuery feladatunkhoz használni kell a kódot:

$ (Ablak) .Width (); // böngésző szélessége $ (ablak) .height (); // böngészőmagasság

És a végén azt szeretném mondani, hogy ha a JS és a jquery nélkül is lehetséges, vagy részben, akkor szükség van cselekedni.

Megmondani a társadalmi. Hálózatok

Mi szükséges? Például, van egy szép elrendezés a webhelyen, amelyet minden szépség kiállítása csak akkor, ha megoldja, azt mondja, 1600 per 1200. Például nagyon nagy szép kalapja van. Mi fog történni, ha egy személy 1024-től 768-ig terjedő állásfoglalásban megy az oldalra? Igen, csak a kalap lesz látható. Nem jó? Talán. Akkor miért ne tegyen ilyen dolgot, hogy amikor a böngésző magassága / képernyője, a kalap egyszerűen leállt, és elment a menübe és a helyszín többi részébe? Ban, ami szükséges.

Valójában leírtam az egyik példát, amelyet a gyakorlatban tapasztaltam (lásd a CartiMintka). Megoldotta a problémát egyszerűen - a JavaScript segítségével. És talán a jquery, nem emlékszem. Itt leírom mindkét módszert.

Először is meg kell különböztetni a meghatározást " képernyőfelbontás"És" böngésző ablakmérete"(Mivel egyes cikkekben voltak incidensek - jégeső önmagukban, felajánlották másokat, bár egy esetben mérem a böngésző felbontását a másikban - a monitor felbontása).

Meg kell határozni a kezdetektől fogva, hogy fontosabb az Ön számára. Ebben az esetben egy példa egy sapkával, a képernyőfelbontásra összpontosítottam (monitor): Mindegy, a webhely gyönyörű, ha a böngészőablakot manuálisan csökkentik, majd hagyja, hogy a böngésző elinduljon, amikor megtekintheti ezt a webhelyet (nincs semmi eszik kb.). De például a JQuery lightbox galéria kibővített képének beállításához a böngésző szélességét és magasságát használtam.

És miután kiválasztotta, írja be a kódot, akkor a webhely fejlécében lehet. Először is, egy példa szerint képernyőfelbontás.

3-6 sor - tiszta JavaScript, 7-11 sor - egy példa a jquery. JavaScript módszereket használnak a szélesség és magasság meghatározására. Szélesség és képernyő. HIGHT módszerek. Milyen sorokból készülnek, törölve: Az első szkript az opcionális CSS-fájl elérési útját írja elő, a másik pedig a teljes azonosító blokkra, a CSS "Background Position" tulajdonság található.

Megnézzük a második példát, de amely a böngésző felbontására összpontosít. Mindegy, a módszerek megváltoztak.

Tehát két példa, rövid áttekintés - mit kell használni, hogy mi:

  1. képernyő.Hát. Meghatározza a képernyő szélességét (monitor).
  2. screen.height. Meghatározza a képernyő magasságát (monitor).
  3. document.body.clientwidth.. Meghatározza a böngésző szélességét.
  4. document.body.clientheight. Meghatározza a böngésző magasságát.
  5. $ (Ablak). Width (). Meghatározza a böngésző szélességét, de csak akkor, ha jquery van.
  6. $ (Ablak) .height (). Meghatározza a böngésző magasságát, de csak akkor, ha jquery van.

Nyilvánvaló, hogy ha JQUIERY-t használ, akkor a 3, és a 6, a 6-os, mint a 4-es lehetőség közül választhat, akkor rövidebbek. Nos, és így - az íz és a szín.

Ami a specifikus magasságrekordokat és a képernyők szélességét illeti, akkor az igazságban nem ismerem őket. Elméletileg az 5-6-as típusú sorok kialakítása, de valahogy nem találkozott a gyakorlatban, adok nekem, nem. Igen, és nincs szükség, a képernyőn. Nedves, elég elég kialakítás, elég.

Igen, még mindig $ (dokumentum). Width () - meghatározza a HTML-dokumentum szélességét. Használja a gyakorlatban - valahogy kétséges. Ki tudja - örülök, ha megosztod.

Ma mindent! Tartsa a hétvégét, és masszívan megy a kebabs! (Hacsak nem beteg, mint valami, mint néhány - kb.). Sok szerencsét!