Во-первых, вам нужно добавить <source>
элемент в свой . Это фактическое изображение, которое будет отображаться, и его атрибут src указывает резервное изображение, если ни один из тегов не работает для определенного устройства.<picture> <source media="(min-width: 901px)" srcset="oldmanfull.jpg"> <source media="( (min-width : 515px) and (max-width : 900px) )" srcset="oldmantablet.jpg"> <img src="fallback_image.png"></img> </picture>
currentSrc
<img>
Во-вторых, <picture>
элемент включен <picture>
, а не src
потому, что <img>
элемент работает путем динамической настройки src
его дочернего элемента <img>
. Поэтому ваш выбор jQuery должен копаться для самого тега:$('picture>img')
var photos = $("picture>img").toArray();
window.setInterval(changePhoto, 6000);
function changePhoto() {
photos.push(photos.shift());
var newBackground = photos[0];
console.log(newBackground); // logs <img> element
newBackground = $(newBackground).prop('currentSrc');
console.log(newBackground); // logs undefined
$(".banner").css("background-image", "url(" + newBackground + ")");
}
С этими исправлениями этот код должен работать:
currentSrc
И, возможно, стоит упомянуть, что currentSrc
это простое свойство javascript, поэтому вы можете легко получить к нему доступ без jQuery:
newBackground = newBackground.currentSrc;