Czy są jakieś interfejsy JavaScript lub jQuery API lub metody uzyskiwania wymiarów obrazu na stronie?
javascript
jquery
image
jquery-plugins
Saneef
źródło
źródło
Odpowiedzi:
Możesz programowo uzyskać obraz i sprawdzić wymiary za pomocą Javascript ...
Może to być przydatne, jeśli obraz nie jest częścią znaczników.
źródło
clientWidth i clientHeight są właściwościami DOM, które pokazują bieżący rozmiar wewnętrznych wymiarów elementu DOM w przeglądarce (bez marginesu i ramki). Tak więc w przypadku elementu IMG uzyska on rzeczywiste wymiary widocznego obrazu.
źródło
$.fn.width
i$.fn.height
.document.getElementById
można pisać dłużej, ale 10 razy szybciej niż$('#...')[0]
.Ponadto (oprócz odpowiedzi Rexa i Iana) są:
i
Zapewniają one wysokość i szerokość samego pliku obrazu (a nie tylko elementu obrazu).
źródło
Jeśli korzystasz z jQuery i żądasz rozmiarów obrazu, musisz poczekać, aż się załadują, bo dostaniesz tylko zera.
źródło
Myślę, że aktualizacja tych odpowiedzi jest przydatna, ponieważ jedna z najlepiej głosowanych odpowiedzi sugeruje użycie
clientWidth
i clientHeight, które moim zdaniem jest już nieaktualne.Przeprowadziłem kilka eksperymentów z HTML5, aby zobaczyć, które wartości faktycznie zostaną zwrócone.
Przede wszystkim użyłem programu Dash o nazwie Dash, aby uzyskać przegląd interfejsu API obrazu. Stwierdza, że
height
iwidth
są renderowaną wysokością / szerokością obrazu oraz żenaturalHeight
inaturalWidth
są wewnętrzną wysokością / szerokością obrazu (i są tylko HTML5).Użyłem obrazu pięknego motyla z pliku o wysokości 300 i szerokości 400. I ten Javascript:
Następnie użyłem tego HTML z wbudowanym CSS dla wysokości i szerokości.
Wyniki:
Następnie zmieniłem HTML na następujący:
tzn. używając atrybutów wysokości i szerokości zamiast stylów wbudowanych
Wyniki:
Następnie zmieniłem HTML na następujący:
tzn. używając zarówno atrybutów, jak i CSS, aby zobaczyć, które mają pierwszeństwo.
Wyniki:
źródło
Za pomocą JQuery robisz to:
źródło
width
iheight
atrybutyimg
elementu.Rzecz, o której wszyscy zapomnieli, to fakt, że nie można sprawdzić rozmiaru obrazu przed jego załadowaniem. Gdy autor sprawdzi wszystkie opublikowane metody, prawdopodobnie będzie działać tylko na localhost. Ponieważ można tutaj użyć jQuery, pamiętaj, że zdarzenie „gotowe” jest uruchamiane przed załadowaniem obrazów. $ ('# xxx'). width () i .height () powinny zostać uruchomione w zdarzeniu onload lub późniejszym.
źródło
Naprawdę możesz to zrobić tylko za pomocą wywołania zwrotnego zdarzenia load, ponieważ rozmiar obrazu nie jest znany, dopóki faktycznie się nie załaduje. Coś w rodzaju kodu poniżej ...
źródło
Z jQuery library-
Użyj
.width()
i.height()
.Więcej w szerokości jQuery i wysokości jQuery .
Przykładowy kod
źródło
ok, myślę, że poprawiłem kod źródłowy, aby umożliwić ładowanie obrazu przed próbą znalezienia jego właściwości, w przeciwnym razie wyświetli się „0 * 0”, ponieważ następna instrukcja zostałaby wywołana przed załadowaniem pliku do przeglądarka. Wymaga jquery ...
źródło
Zakładając, że chcemy uzyskać wymiary obrazu
<img id="an-img" src"...">
Naturalne wymiary
el.naturalWidth
iel.naturalHeight
zapewni nam naturalne wymiary , wymiary pliku obrazu.Wymiary układu
el.offsetWidth
iel.offsetHeight
dostanie wymiary, w których element jest renderowany w dokumencie.źródło
Przed użyciem rzeczywistego rozmiaru obrazu należy załadować obraz źródłowy. Jeśli używasz frameworka JQuery, możesz uzyskać rzeczywisty rozmiar obrazu w prosty sposób.
źródło
Ta odpowiedź była dokładnie tym, czego szukałem (w jQuery):
źródło
Możesz mieć prostą funkcję, jak poniżej (
imageDimensions()
), jeśli nie boisz się używać obietnic .źródło
Odpowiedź JQuery:
źródło
Pomyślałem, że może to być pomocne dla niektórych użytkowników JavaScript i / lub maszynopisu w 2019 roku.
Stwierdziłem, że, jak sugerują niektórzy, niepoprawne:
To jest poprawne:
Wniosek:
Użyj
img
, a niethis
wonload
funkcji.źródło
Ostatnio miałem ten sam problem z błędem w suwaku Flex. Wysokość pierwszego obrazu została ustawiona na mniejszą wartość ze względu na opóźnienie ładowania. Wypróbowałem następującą metodę rozwiązania tego problemu i udało się.
To da ci wysokość w stosunku do ustawionej szerokości zamiast oryginalnej szerokości lub Zera.
źródło
Możesz także użyć:
źródło
Nicky De Maeyer zapytał po zdjęciu tła; Po prostu pobieram go z css i zastępuję „url ()”:
źródło
s.substr(4,s.length-5)
, co najmniej łatwiej dla oczu;)Można zastosować właściwość modułu obsługi obciążenia, gdy strona ładuje się w js lub jquery w następujący sposób: -
źródło
Możesz po prostu przetestować w ten sposób.
źródło
źródło
ważne jest, aby usunąć ustawienie interpretowane w przeglądarce z nadrzędnego div. Więc jeśli chcesz rzeczywistą szerokość i wysokość obrazu, możesz po prostu użyć
To jeden przykład projektu TYPO3 ode mnie, w którym potrzebuję prawdziwych właściwości obrazu, aby skalować go z odpowiednią relacją.
źródło
To jest moja metoda, mam nadzieję, że będzie pomocna. :)
źródło
ta praca dla podglądu i przesyłania wielu zdjęć. jeśli musisz wybrać dla każdego z obrazów jeden po drugim. Następnie skopiuj i wklej do wszystkich funkcji podglądu obrazu i zatwierdź !!!
źródło
Przed uzyskaniem atrybutów elementu strona dokumentu powinna zostać załadowana:
źródło
wystarczy przekazać obiekt pliku img, który jest uzyskiwany przez element wejściowy, gdy wybieramy odpowiedni plik, poda on wysokość i szerokość obrazu
źródło