2011-01-29 2 views
2

Я хочу заблокировать все изображения на веб-странице. Вместо изображений будут серые прямоугольники.Как я могу заблокировать загрузку изображений с помощью JQuery

Как ленивые нагрузки, но изображений будут при прокрутке не нагрузки.

Как я могу сделать это с помощью jquery? Есть ли какая-нибудь функция для этого?

+1

ли это действительно зависит от нагрузки? Или вы хотите «не отображать» их? Загрузка новых изображений выполняется с помощью AJAX, если вы находитесь на определенной позиции. Так что это не «не погрузка», а «нагрузка» в нужный момент, я думаю. – Marnix

+0

@Marnix, изображения должны быть заблокированы во время загрузки страницы. Таким образом, я могу увеличить скорость веб-страниц (например). – Eray

ответ

1
$('img').attr('src', 'img_with_square_border.jpg'); 

Это должно работать отлично.

... Если, конечно, вы не захотели загружать изображения назад, когда пользователь добирается до них.

EDIT TO ВМЕСТИТЬ НАЖИМАЯ

$('img').each(function() { this.setAttribute('real-src', this.src); }) 
     .attr('src', 'whatever.jpg') 
     .click(function() { this.src = this.getAttribute('real-src'); }); 
+0

, но все изображения имеют разные размеры. И позже, как я могу найти эти образы реального адреса для загрузки изображений. – Eray

+0

@Eray Если 'img_with_square_border' является сплошным цветом, то искажение его на все разные размеры должно быть в порядке, не так ли? При каких обстоятельствах вы будете загружать образы назад - когда пользователь прокручивается к ним, когда некоторые элементы будут нажаты и т. Д.? – sdleihssirhc

+0

щелкнув, к примеру. – Eray

1

Вот пример, который заменяет изображения с серой рамкой, и сохраняет ссылку на исходное изображение с помощью .data().

Пример ::http://jsfiddle.net/GTQTC/2/(вернется через 3 секунды)

$('img').each(function() { 
    var $th = $(this); 
    var div = $('<div>', { 
     className: 'replacement', 
     width: $th.width(), 
     height: $th.height(), 
     display: $th.css('display'), 
     css:{'backgroundColor':'#DDD'} 
    }) 
     .data('originalImage',this); 
    $th.replaceWith(div); 
}); 

setTimeout(function() { 
    $('.replacement').replaceWith(function() { 
     return $(this).data('originalImage'); 
    }); 
}, 3000); 
Смежные вопросы