Jak mogę dostać windowWidth
, windowHeight
, pageWidth
, pageHeight
, screenWidth
, screenHeight
, pageX
, pageY
, screenX
, screenY
która będzie działać we wszystkich głównych przeglądarkach?
javascript
jquery
layout
cross-browser
turkawka
źródło
źródło
Odpowiedzi:
Możesz uzyskać rozmiar okna lub dokumentu za pomocą jQuery:
Do rozmiaru ekranu możesz użyć
screen
obiektu:źródło
46
) zamiast ciągu takiego jak css ('height') ("46px"
).To wszystko, co musisz wiedzieć: Uzyskaj rozmiar okna / okna
ale w skrócie:
Skrzypce
Przestań edytować tę odpowiedź. Jest edytowany 22 razy teraz przez różne osoby, aby pasowały do ich preferencji formatu kodu. Zwrócono również uwagę, że nie jest to wymagane, jeśli chcesz kierować reklamy tylko na nowoczesne przeglądarki - jeśli tak, potrzebujesz tylko:
źródło
g = document.body
?document.body
.Oto rozwiązanie dla wielu przeglądarek z czystym JavaScript ( źródło ):
źródło
body element
zwróci wartość,undefined
ponieważ dom nie jest jeszcze załadowany.Nie-jQuery sposób na uzyskanie dostępnego wymiaru ekranu.
window.screen.width/height
został już wdrożony, ale ze względu na responsywny projekt i kompletność uważam, że warto wspomnieć o tych atrybutach:http://www.quirksmode.org/dom/w3c_cssom.html#t10 :
źródło
window.screen.availHeight
wydaje się zakładać tryb pełnoekranowy, więc normalny tryb ekranu wymusza przewijanie (testowane w Firefox i Chrome).window.screen.height
zamiast tego.Ale kiedy mówimy o responsywnych ekranach i jeśli z jakiegoś powodu chcemy obsłużyć je za pomocą jQuery,
daje prawidłowy pomiar. Nawet to usuwa dodatkową przestrzeń paska przewijania i nie musimy się martwić o dostosowanie tej przestrzeni :)
źródło
window.innerWidth
iwindow.innerHeight
nie bierze pod uwagę rozmiaru paska przewijania. Jeśli występują paski przewijania, te metody zwracają nieprawidłowe wyniki dla rozmiaru okna w prawie wszystkich przeglądarkach komputerowych. Zobacz stackoverflow.com/a/31655549/508355Możesz także uzyskać szerokość i wysokość OKNA, unikając pasków narzędzi przeglądarki i innych rzeczy. Jest to prawdziwy obszar użytkowy w oknie przeglądarki .
Aby to zrobić, użyj:
window.innerWidth
iwindow.innerHeight
właściwości ( patrz doc na w3schools ).W większości przypadków najlepszym sposobem będzie, na przykład, wyświetlanie idealnie wyśrodkowanego pływającego okna dialogowego modalnego. Pozwala obliczyć pozycje w oknie, bez względu na to, która orientacja rozdzielczości lub rozmiar okna używa przeglądarki.
źródło
źródło
Aby sprawdzić wysokość i szerokość aktualnie załadowanej strony dowolnej witryny za pomocą „konsoli” lub po kliknięciu „Inspekcja” .
krok 1 : Kliknij prawym przyciskiem myszy i kliknij „Sprawdź”, a następnie kliknij „konsola”
krok 2 : Upewnij się, że ekran przeglądarki nie powinien być w trybie „maksymalizacji”. Jeśli ekran przeglądarki jest w trybie „maksymalizacji”, musisz najpierw kliknąć przycisk maksymalizacji (obecny w prawym lub lewym górnym rogu) i cofnąć maksymalizację.
krok 3 : Teraz napisz następujące po znaku większym niż ('>'), tj
źródło
Jeśli potrzebujesz naprawdę kuloodpornego rozwiązania dla szerokości i wysokości dokumentu (
pageWidth
orazpageHeight
na zdjęciu), możesz rozważyć użycie mojej wtyczki jQuery.documentSize .Ma tylko jeden cel: zawsze zwracać prawidłowy rozmiar dokumentu, nawet w scenariuszach, w których zawodzi jQuery i inne metody . Pomimo nazwy niekoniecznie musisz używać jQuery - jest napisany w waniliowym JavaScript i działa również bez jQuery .
Stosowanie:
dla globalnego
document
. W przypadku innych dokumentów, np. W osadzonej ramce iframe, do której masz dostęp, przekaż dokument jako parametr:Aktualizacja: teraz także dla wymiarów okna
Od wersji 1.1.0 jQuery.documentSize obsługuje również wymiary okien.
Jest to konieczne, ponieważ
$( window ).height()
jest wadliwy w iOS , do tego stopnia, że jest bezużyteczny$( window ).width()
i$( window ).height()
są niewiarygodne na urządzeniach mobilnych, ponieważ nie radzą sobie z efektami przybliżania na urządzeniach mobilnych.jQuery.documentSize zapewnia
$.windowWidth()
i$.windowHeight()
, które rozwiązują te problemy. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją .źródło
Napisałem małą bookmarklet javascript, którego można użyć do wyświetlenia rozmiaru. Możesz łatwo dodać go do przeglądarki, a po każdym kliknięciu zobaczysz rozmiar w prawym rogu okna przeglądarki.
Tutaj znajdziesz informacje na temat korzystania z bookmarkletu https://en.wikipedia.org/wiki/Bookmarklet
Bookmarklet
Kod oryginalny
Oryginalny kod jest w kawie:
Zasadniczo kod przygotowuje mały div, który aktualizuje się podczas zmiany rozmiaru okna.
źródło
W niektórych przypadkach związane z układem responsywnym
$(document).height()
mogą zwracać nieprawidłowe dane, które wyświetlają tylko wysokość portu widoku. Na przykład, gdy jakieś otoki div # ma wysokość: 100%, ten #wrapper może być rozciągnięty przez jakiś blok w nim. Ale jego wysokość nadal będzie jak wysokość rzutni. W takiej sytuacji możesz użyćTo reprezentuje rzeczywisty rozmiar opakowania.
źródło
Kompletny przewodnik dotyczący rozmiarów ekranu
JavaScript
Do wysokości:
Uwaga: gdy okno jest zmaksymalizowane, będzie to równe screen.availHeight
Dla szerokości:
Jquery
Do wysokości:
Dla szerokości:
Odniesienie: https://help.optimizely.com/Build_Campaigns_and_Experiments/Use_screen_measurements_to_design_for_responsive_breakpoints
źródło
Opracowałem bibliotekę znającą rzeczywisty rozmiar okienka ekranu w przeglądarkach na komputery stacjonarne i urządzenia mobilne, ponieważ rozmiary okienek są niespójne na różnych urządzeniach i nie mogą polegać na wszystkich odpowiedziach tego postu (zgodnie z wszystkimi badaniami, które przeprowadziłem na ten temat): https: // github .pl / pyrsmk / W
źródło
Czasami trzeba zobaczyć zmiany szerokości / wysokości podczas zmiany rozmiaru okna i zawartości wewnętrznej.
W tym celu napisałem mały skrypt, który dodaje pole dziennika, które dynamicznie monitoruje wszystkie zmiany rozmiaru i prawie natychmiast aktualizuje.
Dodaje prawidłowy kod HTML ze stałą pozycją i wysokim indeksem Z, ale jest wystarczająco mały, więc możesz :
Testowano na: Chrome 40, IE11, ale istnieje również możliwość pracy na innych / starszych przeglądarkach ... :)
EDYCJA: Teraz style są stosowane tylko do elementu tabeli rejestratora - nie do wszystkich tabel - jest to również rozwiązanie wolne od jQuery :)
źródło
Dzięki wprowadzeniu
globalThis
w ES2020 możesz używać właściwości takich jak.Dla rozmiaru ekranu:
Dla rozmiaru okna
Do przesunięcia:
...& wkrótce.
źródło
Możesz użyć ekranu obiektu .
Oto przykład tego, co zwróci:
Aby uzyskać
screenWidth
zmienną, po prostu użyj tegoscreen.width
samego zscreenHeight
, po prostu użyjscreen.height
.Aby uzyskać szerokość i wysokość okna, będzie to
screen.availWidth
lubscreen.availHeight
odpowiednio .Dla
pageX
ipageY
zmiennych, wykorzystywaniewindow.screenX or Y
. Pamiętaj, że pochodzi on z BARDZO LEWEGO / GÓRY SWOJEGO LEWEGO / NAJLEPSZEGO EKRANU . Więc jeśli masz dwa ekrany szerokości,1920
okno 500px z lewej strony prawego ekranu miałoby wartość X2420
(1920 + 500).screen.width/height
, jednak wyświetl szerokość lub wysokość ekranu CURRENT.Aby uzyskać szerokość i wysokość strony, użyj jQuery's
$(window).height()
lub$(window).width()
.Ponownie używając jQuery, użyj
$("html").offset().top
i$("html").offset().left
dla siebiepageX
ipageY
wartości.źródło
oto moje rozwiązanie!
źródło
W ten sposób udało mi się uzyskać szerokość ekranu w React JS Project:
Jeśli szerokość jest równa 1680, zwróć 570, w przeciwnym razie zwróć 200
Screen.availWidth
źródło