Изменить фоновое изображение при перезагрузке

0

Я пытался изменить src элемента изображения при перезагрузке. Я придумал этот код, но он не работает для меня:

var images = ['hero-1.jpg', 'hero-2.jpg', 'hero-3.jpg', 'hero-4.jpg', 'hero-5.jpg', 'hero-6.jpg'];
$('#hero figure img[src="images/' + images[Math.floor(Math.random() * images.length)] + '"]').appendTo('#hero img');

HTML

<section id="hero">
    <figure>
        <img src="images/hero-1.jpg" alt="Hero">
    </figure><!-- End figure -->
</section><!-- End section#hero -->

Изображения размещаются внутри карты изображения непосредственно в корне.

  • 0
    Все 6 изображений на самом деле в разметке?
  • 0
    HTML-код имеет некоторые ошибки. Не могли бы вы их починить?
Показать ещё 3 комментария
Теги:

1 ответ

0

Здесь небольшое AngularJS-приложение, которое делает то, что вы хотите: http://jsfiddle.net/HB7LU/3276/

Он содержит контроллер с массивом с URL-адресами img и функцию, которая возвращает случайный один из этих URL-адресов:

function MyCtrl($scope) {
    var images = [
        'http://placehold.it/200x200', 
        'http://placekitten.com/200/300', 
        'http://www.lorempixum.com/400/300'
    ];

    $scope.getRandomImage = function () {
        var randIndex = ~~(Math.random() * images.length);
        return images[randIndex];
    };
}

Это используется в выражении в html:

<img ng-src="{{getRandomImage()}}">

Здесь используется угловая директива ng-src, потому что ей не разрешено иметь угловые выражения в атрибуте src.

Может быть немного перебор, чтобы использовать угловые.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню