jquery simple animate/rotate of a css background-image inside a div?

后端 未结 2 857
野的像风
野的像风 2021-01-25 00:35

I was wondering if anyone could help me out, or point me in the right direction. I\'m looking for a snippet of jquery that will automatically change the background image of a di

相关标签:
2条回答
  • 2021-01-25 01:15

    Something like this should do the trick?

    jQuery( function( $ ) {
        var images = [ "bg-1.jpg", "bg-2.jpg", "bg-3.jpg", "bg-4.jpg", "bg-5.jpg" ];
        var currentImage = 0;
    
        function changeBackground() {
            $( '#page_bg' ).css( { backgroundImage: 'url(' + images[ ++currentImage ] + ')' } );
            if ( currentImage >= images.length - 1 ) {
                currentImage -= images.length;
            }
        }
    
        setInterval( changeBackground, 5000 );  
    });
    
    0 讨论(0)
  • 2021-01-25 01:15

    If those are the actual image names, you really wouldn't need an Array.

      // cache the element
    var $page_bg = $('#page_bg');
    
    setInterval( function() {
        $page_bg.css( 'background-image', function(i,bg) {
           return bg.replace(/\d/, function(str) { return (str % 5) + 1;});
        });
    }, 5000);
    

    In the return (str % 5) + 1; part, the number 5 represents the total number of images. They should be sequentially indexed starting with 1 like yours are.


    EDIT: Or if there will be a number elsewhere in the URL, then do this instead:

      // cache the element
    var $page_bg = $('#page_bg');
    
    setInterval( function() {
        $page_bg.css( 'background-image', function(i,bg) {
           return bg.replace(/(\d)(\.jpg)/, function(str,p1,p2) { return ((p1 % 5) + 1) + p2;});
        });
    }, 5000);
    
    0 讨论(0)
提交回复
热议问题