Я создаю фотогалерею с помощью jQuery. Я беру и изменяю размер изображений на загрузке для создания миниатюр. Я хочу получить исходное значение размера изображения так, чтобы позже я мог забрать его к его первоначальному размеру. Кто-либо знает, как сделать это? У меня есть следующий код:
obj.find("img").each(function(){
});
Это циклично выполняется через все изображения в контейнерном отделении. Я затем пытался сделать:
$(this).width(); //didnt work
this.width; //didnt work
какие-либо идеи?
Я просил Этот же самый вопрос недавно и получил хороший ответ: новый элемент изображения создан, но не прикреплен к DOM. Его высота и ширина - исходные размеры изображения.
Редактировать : Я отредактировал ответ на мой вопрос, как и обещал в комментариях. Обнаружение размера изображения в настоящее время связано с событием onload
изображения, чтобы гарантировать надежные результаты.
Если элемент скрыт, вы не можете Получите его размер, если вы хотите получить его ширину или высоту, прежде чем показывать его, вам нужно дать отрицательное офсетное, как
#your_Image {слева: -1000%;}
только тогда
$ (это) .width ()
вернет вам результат.
проблема с использованием jQuery для получения размера изображения состоит в том, что обычно мы используем $ () .ready (функция ()); должностному лицу наш JavaScript, но в той точке загрузка страницы, изображение еще не загружается, таким образом, необходимо ожидать этого для случая сначала. После того как вы уверены, что изображение загружается, и изображение видимо, можно использовать $ .width () и $ .height () как нормальные.
Одна вещь вы могли бы попробовать также при использовании языка в виде сценария для генерации размеров изображения, должен поместить атрибуты ширины и высоты после чтения файла и получения размера тот путь. Так как вы делаете галерею, вы могли бы рассмотреть изменение размеров ваших изображений на бэкенде с imagemagick gd для php. Существует много документации онлайн для тех инструментов, таким образом, я не войду в нее здесь.