2011-02-09 2 views
0

В IE он не уменьшает масштабные изображения. Фактически, он масштабирует некоторые, но не все. Я уменьшаю их, устанавливая небольшие атрибуты ширины и высоты. Как это исправить?Image onLoad problem in IE

Я делаю это следующим образом:

var $image = $('<img/>'); 
$image.attr('src', 'http://example.com/img.jpeg'); 
$image.load(function() { 
    this.width = this.height = 100; 
}); 

Что-то вроде этого. Но не все изображения уменьшаются. И каждый раз, когда я перезагружаю страницу, разные изображения уменьшаются.

Я выяснил, в чем дело. См. img onload doesn't work well in IE7

IE 6&7 only fire "load" if they actually have to get the image from the server -- they don't if the image is already in local cache., Jeremy Wadhams написал.

+1

Просьба показать примеры и определить «правильно». Показать код. –

+4

Я не могу показать вам изображения, потому что я голый там. – Domspan

+0

Что-то не так с методом загрузки jQuery в IE? Я использую его для динамического масштабирования изображений. Хорошо работает в браузерах, кроме IE. – Domspan

ответ

2

Если вы определяете ширину и высоту в элементе html, это должно работать. В css IE6 не соответствует стандартам и результаты могут отличаться.

Для лучшей практики вы не должны изменять размер изображений в браузере, это замедляет все и вызывает пикселизацию. Сделайте копию изображений, размер которых вы хотите, а затем соедините эти изображения с полноразмерными изображениями, если это подходит.

Как только вы это сделаете, держите эти изображения подальше от меня, спасибо очень много.

0

В любом случае, у вас не должно быть изображений в масштабе браузера. По соображениям производительности это приведет к запугиванию вашего сайта для ваших пользователей. Если вы заставляете браузер пользователя уменьшать «огромные» изображения, тогда они должны сначала загрузить указанные изображения, а затем браузер может масштабировать их, что замедляет их рабочий процесс. Это также будет стоить вам больше полосы пропускания, чем использование изображений с правильным размером.

Вы должны предоставить изображения в размере, который вы хотите отобразить для пользователя. Если вам нужно несколько размеров, то у вас есть несколько размеров изображений на вашем сервере. Место на жестком диске дешево, определенно дешевле, чем пропускная способность (как ваши, так и ваши пользователи).

+0

Чарльз, я уже знал информацию. – Domspan

+0

@Goreed - тогда почему вы пытаетесь сделать что-то, что вы, мол, знаете, что вы не должны делать? –

+0

Есть верная причина, поверьте. – Domspan