基于javascript宽度大小的不同背景src?

时间:2015-08-20 23:42:43

标签: javascript jquery css slider

我想根据屏幕的宽度获得不同的背景scr。我该怎么做呢?另外,我可以禁用小于480像素的屏幕功能吗?以下代码似乎不起作用

$(window).ready(function() {
'use strict';
$.vegas('slideshow', {
        if ($(window).width() <= 480) {
            /* How to disable this fuction for resolution smaller than 480 ??? */
        } 
        else if ($(window).width() <= 720) {
            backgrounds:[
                { src:'images/bg-slider/720-1.jpg', fade:1000 },
                { src:'images/bg-slider/720-2.jpg', fade:1000 },
                { src:'images/bg-slider/720-3.jpg', fade:1000 }
            ]
        }
        else if ($(window).width() <= 1024) {
            backgrounds:[
                { src:'images/bg-slider/1024-1.jpg', fade:1000 },
                { src:'images/bg-slider/1024-2.jpg', fade:1000 },
                { src:'images/bg-slider/1024-3.jpg', fade:1000 }
            ]
        }
        else if ($(window).width() <= 1280) {
            backgrounds:[
                { src:'images/bg-slider/1280-1.jpg', fade:1000 },
                { src:'images/bg-slider/1280-2.jpg', fade:1000 },
                { src:'images/bg-slider/1280-3.jpg', fade:1000 }
            ]
        }
        else if ($(window).width() <= 1440) {
            backgrounds:[
                { src:'images/bg-slider/1440-1.jpg', fade:1000 },
                { src:'images/bg-slider/1440-2.jpg', fade:1000 },
                { src:'images/bg-slider/1440-3.jpg', fade:1000 }
            ]
        }
        else if ($(window).width() <= 1920) {
            backgrounds:[
                { src:'images/bg-slider/1920-1.jpg', fade:1000 },
                { src:'images/bg-slider/1920-2.jpg', fade:1000 },
                { src:'images/bg-slider/1920-3.jpg', fade:1000 }
            ]
        }
})();
});

2 个答案:

答案 0 :(得分:0)

如果你看一下拉斯维加斯的documentation,你会注意到两件事:

    应该在元素上调用
  1. vegas
  2. 传递给方法的选项是对象
  3. 在您提供的代码中,if语句的位置在语法上是不正确的(它会期望key: value对象以花括号开始和结束),但是我们可以做这样的事情:

    $(window).ready(function() {
        'use strict';
        var slides;
        var width = $(window).width();
        if (width <= 480) {
            // Do nothing, skip.
        }
        else if (width <= 720) {
            slides = [
                { src:'images/bg-slider/720-1.jpg', fade:1000 },
                { src:'images/bg-slider/720-2.jpg', fade:1000 },
                { src:'images/bg-slider/720-3.jpg', fade:1000 }
            ];
        }
        else if (width <= 1024) {
            slides = [
                { src:'images/bg-slider/1024-1.jpg', fade:1000 },
                { src:'images/bg-slider/1024-2.jpg', fade:1000 },
                { src:'images/bg-slider/1024-3.jpg', fade:1000 }
            ];
        }
        else if (width <= 1280) {
            slides = [
                { src:'images/bg-slider/1280-1.jpg', fade:1000 },
                { src:'images/bg-slider/1280-2.jpg', fade:1000 },
                { src:'images/bg-slider/1280-3.jpg', fade:1000 }
            ];
        }
        else if (width <= 1440) {
            slides = [
                { src:'images/bg-slider/1440-1.jpg', fade:1000 },
                { src:'images/bg-slider/1440-2.jpg', fade:1000 },
                { src:'images/bg-slider/1440-3.jpg', fade:1000 }
            ];
        }
        else if (width <= 1920) {
            slides = [
                { src:'images/bg-slider/1920-1.jpg', fade:1000 },
                { src:'images/bg-slider/1920-2.jpg', fade:1000 },
                { src:'images/bg-slider/1920-3.jpg', fade:1000 }
            ];
        }
        if (slides) {
            $("#slideshow").vegas('slideshow', {
                slides: slides
            });
        } else {
            // Window width too big or small.
        }
    });
    

    请注意,我们仅在设置slides时初始化幻灯片,这样可以为您提供您正在寻找的行为。

答案 1 :(得分:0)

试试这个:

var sizes = [720, 1024, 1280, 1440, 1920];

function slidesForScreenSize(size) {
    return $.map([1, 2, 3], function (n) {
        return {
            src: 'images/bg-slider/' + size + '-' + n + '.jpg',
            fade: 1000
        }
    });

}

$(function () {
    var width = $(window).width();
    if (width > 480) {
        for (var i = 0; i < sizes.length; i++) {
            if (width <= sizes[i]) {
                $('body').vegas({
                    slides: slidesForScreenSize(sizes[i])
                });
                break;
            }
        }
    }
});