Существуют ли какие-либо API-интерфейсы или методы JavaScript или jQuery для получения размеров изображения на странице?
javascript
jquery
image
jquery-plugins
Saneef
источник
источник
Ответы:
Вы можете программно получить изображение и проверить размеры, используя Javascript ...
Это может быть полезно, если изображение не является частью разметки.
источник
clientWidth и clientHeight - это свойства DOM, которые показывают текущий размер в браузере внутренних размеров элемента DOM (исключая поля и границы). Таким образом, в случае элемента IMG, он получит фактические размеры видимого изображения.
источник
$.fn.width
и$.fn.height
.document.getElementById
длиннее, но в 10 раз быстрее, чем$('#...')[0]
.Также (в дополнение к ответам Рекса и Яна) есть:
а также
Они обеспечивают высоту и ширину самого файла изображения (а не только элемент изображения).
источник
Если вы используете jQuery и запрашиваете размеры изображений, вам нужно подождать, пока они загрузятся, иначе вы получите только нули.
источник
Я думаю, что обновление этих ответов полезно, потому что один из ответов с наибольшим количеством голосов предлагает использовать
clientWidth
и clientHeight, который, я думаю, сейчас устарел.Я провел несколько экспериментов с HTML5, чтобы увидеть, какие значения действительно возвращаются.
Прежде всего, я использовал программу под названием Dash, чтобы получить обзор API изображения. В нем утверждается, что
height
иwidth
являются отображаемой высотой / шириной изображения, а такжеnaturalHeight
иnaturalWidth
являются внутренней высотой / шириной изображения (и являются только HTML5).Я использовал изображение красивой бабочки из файла с высотой 300 и шириной 400. И этот Javascript:
Затем я использовал этот HTML со встроенным CSS для высоты и ширины.
Результаты:
Затем я изменил HTML-код на следующий:
т.е. используя атрибуты высоты и ширины, а не встроенные стили
Результаты:
Затем я изменил HTML-код на следующий:
то есть используя как атрибуты, так и CSS, чтобы увидеть, какой из них имеет приоритет.
Результаты:
источник
Используя JQuery, вы делаете это:
источник
width
иheight
атрибутыimg
элемента.Все, что другие забыли, это то, что вы не можете проверить размер изображения перед его загрузкой. Когда автор проверяет все опубликованные методы, он будет работать только на localhost. Поскольку здесь можно использовать jQuery, помните, что событие 'ready' вызывается до загрузки изображений. $ ('# xxx'). width () и .height () должны быть запущены в событии onload или позже.
источник
Вы действительно можете сделать это только с помощью обратного вызова события загрузки, так как размер изображения неизвестен до тех пор, пока он фактически не завершит загрузку. Что-то вроде кода ниже ...
источник
С библиотекой jQuery
Используйте
.width()
и.height()
.Подробнее в ширину JQuery и JQuery heigth .
Пример кода
источник
Хорошо, ребята, я думаю, что я улучшил исходный код, чтобы иметь возможность загружать изображение, прежде чем пытаться выяснить его свойства, иначе оно будет отображать '0 * 0', потому что следующий оператор был бы вызван до того, как файл был загружен в браузер. Требуется JQuery ...
источник
Предполагая, что мы хотим получить размеры изображения
<img id="an-img" src"...">
Естественные размеры
el.naturalWidth
иel.naturalHeight
получит нам естественные размеры , размеры файла изображения.Размеры макета
el.offsetWidth
иel.offsetHeight
получит нам размеры, при которых элемент отображается в документе.источник
Перед использованием реального размера изображения вы должны загрузить исходное изображение. Если вы используете JQuery Framework, вы можете получить реальный размер изображения простым способом.
источник
Этот ответ был именно тем, что я искал (в jQuery):
источник
У вас может быть простая функция, такая как следующая (
imageDimensions()
), если вы не боитесь использовать обещания .источник
JQuery Ответ:
источник
Я подумал, что это может быть полезно для тех, кто использует Javascript и / или Typescript в 2019 году.
Я считаю, что следующее, как некоторые предположили, неверно:
Это правильно:
Вывод:
Используйте
img
, а неthis
вonload
функции.источник
Недавно у меня возникла та же проблема с ошибкой в флайдере. Высота первого изображения была установлена меньше из-за задержки загрузки. Я попытался следующий метод для решения этой проблемы, и это сработало.
Это даст вам высоту относительно ширины, которую вы установили, а не исходную ширину или ноль.
источник
Вы также можете использовать:
источник
Никки де Майер спросил после фоновой картины; Я просто получаю его из CSS и заменяю "url ()":
источник
s.substr(4,s.length-5)
этим, на глаза это как минимум легче;)Вы можете применить свойство обработчика загрузки, когда страница загружается в js или jquery следующим образом:
источник
Просто вы можете проверить, как это.
источник
источник
важно удалить интерпретируемую браузером настройку из родительского div. Так что если вы хотите реальную ширину и высоту изображения, вы можете просто использовать
Это один из примеров проекта TYPO3 от меня, где мне нужны реальные свойства изображения, чтобы масштабировать его с правильным соотношением.
источник
Это мой метод, надеюсь, это полезно. :)
источник
эта работа для предварительного просмотра и загрузки нескольких изображений. если вы должны выбрать для каждого из изображений по одному. Затем скопируйте и вставьте во все функции предварительного просмотра изображения и подтвердите !!!
источник
Перед получением атрибутов элемента страница документа должна быть загружена:
источник
просто передайте объект img file, полученный элементом input, когда мы выберем правильный файл, он даст натуральную высоту и ширину изображения
источник