Как изменить CSS элемента с фоном элемента, который непрерывно меняется через определенные промежутки времени?

0

Я использовал ниже код для изменения фона непрерывно с некоторыми временными интервалами тела HTML-страницы:

 jQuery(function ($) {
    var images = ["images/bg-a.jpg", "images/bg-b.jpg", "images/bg-c.jpg"];
    var currentImage = 0;

    function changeBackground() {
        $('#bdy').css({
            backgroundImage: 'url(' + images[++currentImage] + ')'
        });
        if (currentImage >= images.length - 1) {
            currentImage -= images.length;
        }
    }
    setInterval(changeBackground, 5000);
 });

Здесь "bdy" является идентификатором тела. теперь у меня есть три элемента span в этом теле как:

        <span class="controller" id="bg-a"></span>
        <span class="controller" id="bg-b"></span>
        <span class="controller" id="bg-c"></span>

теперь я хочу, например, если фон тела "bg-a.jpg", тогда необходимо изменить css диапазона с id = "bg-a" и если если фон тела "bg-b.jpg", то css диапазона, имеющего id = "bg-b", следует изменить и так же, как для span с id = "bg-c". Как это сделать?

  • 0
    сделать jsfiddle
Теги:

2 ответа

0

это должно делать то, что вы хотите.

function changeBackground() {
    $( '#bdy' ).css( { backgroundImage: 'url(' + images[ ++currentImage ] + ')' } );
    if ( currentImage >= images.length - 1 ) {
        currentImage -= images.length;
    }
    var id = $('body').css('background-image');
    id = $('body').css('background-image');
    id = id.substring(id.lastIndexOf('/')+1,id.lastIndexOf('.'));
    $('span#'+id).css({...apply your css...});
}
0

Здесь у вас есть одно возможное решение:

http://jsfiddle.net/M3YL3/

jQuery(function ($) {
 var images = [
     {url: 'http://placekitten.com/200/302', id: 'bg-a', color: '#ffff00'},
     {url: 'http://placekitten.com/200/303', id: 'bg-b', color: '#ff00ff'},
     {url: 'http://placekitten.com/200/304', id: 'bg-c', color: '#ff0000'}
 ];
 var currentImage = 0;

 function changeBackground() {
     $('#bdy').css({
         backgroundImage: 'url(' + images[++currentImage].url + ')'
     });
     $('#' + images[currentImage].id).css({'background-color': images[currentImage].color});
     if (currentImage >= images.length - 1) {
         currentImage -= images.length;
     }
 }

 setInterval(changeBackground, 5000);
});

Надеюсь, поможет!

Ещё вопросы

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