Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想在javascript上设置动画背景大小和位置_Javascript_Jquery_Css - Fatal编程技术网

我想在javascript上设置动画背景大小和位置

我想在javascript上设置动画背景大小和位置,javascript,jquery,css,Javascript,Jquery,Css,下面是我要设置背景大小和位置的代码: $(document).ready(function() { var header = $('body'); //images var backgrounds = new Array( 'url(image1)', 'url(image2)', 'url(image3)', 'url(image4)' ); //animation var current = 0; function

下面是我要设置背景大小和位置的代码:

$(document).ready(function() {
    var header = $('body');

    //images
    var backgrounds = new Array(
        'url(image1)', 'url(image2)', 'url(image3)', 'url(image4)'
    );

    //animation
    var current = 0;

    function nextBackground() {
        current++;
        current = current % backgrounds.length;
        header.css('background-image', backgrounds[current]);
    }
    setInterval(nextBackground, 7000);

    header.css('background-image', backgrounds[0]);

});

我该怎么做呢?

如果你想要动画,那么在这种情况下,你应该使用随机函数:

函数的作用是:返回[0,1]范围内的浮点伪随机数,即从0(包含)到但不包括1(排除),然后可以将其缩放到所需的范围。实现会选择随机数生成算法的初始种子;用户无法选择或重置该种子

请注意,由于JavaScript中的数字是IEEE 754浮点数,具有从四舍五入到最近的偶数行为,因此下面函数的声明范围(不包括Math.random()本身的范围)并不精确。如果选择了非常大的范围(253或更高),在极少数情况下,计算通常排除的上限是可能的

// Returns a random number between min (inclusive) and max (exclusive)
function getRandomArbitrary(min, max) {
  return Math.random() * (max - min) + min;
}
你的代码应该是

$(document).ready(function() {
    var header = $('body');

    //images
    var backgrounds = new Array(
        'url(image1)', 'url(image2)', 'url(image3)', 'url(image4)'
    );

    //animation
    var current = 0;

    function nextBackground() {
        current++;
        //current = current % backgrounds.length;
        current = getRandomArbitrary(0,backgrounds.length;
        header.css('background-image', backgrounds[current]);
    }
    setInterval(nextBackground, 7000);

    header.css('background-image', backgrounds[0]);

});
按照你的方法

$(document).ready(function() {
    var header = $('body');

    //images
    var backgrounds = new Array(
        'url(image1)', 'url(image2)', 'url(image3)', 'url(image4)'
    );

    //animation
    var current = 0;    

    function nextBackground() {
    if(current>=backgrounds.length)
    current = 0;              
        header.css('background-image', backgrounds[current]);
        current++;  
    }
    setInterval(nextBackground, 7000);

    header.css('background-image', backgrounds[0]);

});

设置背景大小和位置有什么问题?您已经在使用
css()
方法了?此外,如果所有图像共享相同的设置,您可以在样式表中设置这些规则,而不是通过JS