更改背景图像的顺序


Change the sequence of background images

我有这个JavaScript函数来显示一系列背景图像。我想要的是用php更改每个页面的顺序。在这种情况下,我想用1到8范围内的数字替换bg_x_ps.jpg中的x。每个背景都必须有一个唯一的编号。

$.vegas( 'slideshow', {
    delay: 34000,
    backgrounds: [
        { src: "http://sionvalais.com/images/bg_2_ps.jpg", fade: 4000 },
        { src: 'http://sionvalais.com/images/bg_4_ps.jpg', fade: 4000 },
        { src: 'http://sionvalais.com/images/bg_5_ps.jpg', fade: 4000 },
        { src: 'http://sionvalais.com/images/bg_7_ps.jpg', fade: 4000 }
    ]
} )( 'overlay' );

尝试以下操作:

$(document).ready(function() {
...
var indices = [], x;
while(indices.length < 4) {
    x = parseInt(Math.ceil(Math.random() * 8), 10);
    x = (x == 0) ? 1 : x;
    if(indices.indexOf(x) == -1) indices.push(x);
}
$.vegas( 'slideshow', {
    delay: 34000,
    backgrounds: [
        { src: "http://sionvalais.com/images/bg_"+indices[0]+"_ps.jpg", fade: 4000 },
        { src: "http://sionvalais.com/images/bg_"+indices[1]+"_ps.jpg", fade: 4000 },
        { src: "http://sionvalais.com/images/bg_"+indices[2]+"_ps.jpg", fade: 4000 },
        { src: "http://sionvalais.com/images/bg_"+indices[3]+"_ps.jpg", fade: 4000 }
    ]
} )( 'overlay' );
...
});

只需在PHP数组中构建图像顺序。然后将其解析为json(可能使用json_encode()),并将其发送到您的javascript。