Итак, я создаю сайт, который будет использовать много анимированных GIF при наведении мыши. Будет много изображений, и я хочу только загрузить изображения, которые будут использоваться на любой заданной странице. Он использует WordPress, поэтому я могу использовать условные теги, чтобы выставлять только URL-адреса изображений, которые мне нужны на определенной странице.Предварительная загрузка изображений с использованием PHP и jQuery - массив с разделителями-запятыми?
Моя проблема заключалась в том, как сообщить браузеру/серверу, какие изображения нужно предварительно загрузить. Я решил добавить атрибут данных HTML5 к содержащемуся элементу.
К примеру, я бы DIV с этим PHP в нем:
<div id="home-container" class="preload" data-preload="<?php echo preloadImages(); ?>"></div>
Что бы вызывать эту функцию в PHP:
function preloadImages() {
global $post;
$templateURL = get_template_directory_uri();
$images = array();
if(is_page('test'))
$images[] = "'".$templateURL."/images/gifs-static/button-info-tab-close-off.gif'";
$images[] = "'".$templateURL."/images/gifs-animated/button-info-tab-close.gif'";
}
return implode(", ", $images);
}
Так результат будет таким:
<div id="home-container" class="preload" data-preload="'http://example.com/images/gifs-static/button-info-tab-close-off.gif', 'http://example.com/images/gifs-animated/button-info-tab-close.gif'"></div>
И затем запустите этот JavaScript:
jQuery('.preload').each(function(){
var images = [
// Comma separated list
jQuery(this).data('preload')
];
jQuery(images).each(function() {
jQuery('<img />').attr('src', this).addClass('preloaded').appendTo('body').hide();
});
});
Проблема в том, что JavaScript не нравится список, разделенный запятыми. Если я просто пишу в URL-адресах, он работает нормально. Так есть лучший способ передать эти URL-адреса? Или лучший способ вообще?
.split() было то, что мне было нужно! Благодаря! –