Есть портфолио на сайте, в самом портфолио - превьюшки легкие, при клике на них, выскакивает модалка с полным изображением лендинга. Проблема в том, что большие изображения грузятся вместе со всеми ресурсами сайта изначально, что очень замедляет первоначальную загрузку сайта.
Как сделать, чтобы изображения подгружались по требованию? То есть кликнул человек на превьюшку и пошла подгрузка большого изображения в модальном окне. Спасибо.
У меня не совсем так. Модальное окно всплывает по клику на кнопку "посмотреть". В модальном окне краткое описание кейса, форма обратной связи и слева полотно полного лендинга.
Вы можете сделать так. <img data-src="thumbimage.jpg" class="preview">
И потом, когда вызовете открытие модального окна, просто выполните
$('.active-modal .preview').each(function() {
var $this = $(this);
$this.attr('src', $this.data9'src');
});
т.е. храним путь до картинки не в атрибуте src, а в data-src, и потом при открытии окна берем из data-src путь до картинки и вставляем его в src, и тогда браузер начнет его грузить.
Но у меня много картинок, а надо, чтобы при клике на кнопку добавлялся только один соответствующий атрибут к одному тегу. Как это сделать, не создавая море разных id и не дублируя код на кол-во изображений?
Ринат Хайсман, это потому, что клик на вашу кнопку срабатывает раньше, чем блок получит класс remodal-is-opened. Если глянуть API этого плагина, можно найти событие открытия модального окна, которое еще указывает какое окно открылось. Короче получилось так, просто киньте этот код в JS.
$(document).on('opening', '.remodal', function () {
var $image = $(this).find('img[data-src]');
$image.attr('src', $image.data('src'));
});