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

标签 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 }
            ]
        }
})();
});

最佳答案

如果您查看 documentation对于维加斯,您会注意到两件事:

  1. vegas 应该在元素上调用
  2. 传递给方法的选项是一个对象

在您提供的代码中,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 时才初始化幻灯片放映,这将为您提供所需的行为。

关于javascript - 基于javascript中宽度大小的不同背景src?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32130192/

相关文章:

javascript - 如何更新没有特定类型的 Angular 管

jquery - 垂直和水平移动图像

html - 无法使内容位于固定导航栏的正下方

javascript - 捕获和冒泡事件变得困惑

javascript - 嵌入响应在底部显示白色边框

html - 切换表单字段顺序的样式错误

c# - asp.net mvc或javascript将另一个页面的结果返回给方法

javascript - 如何使用 javascript 将 -1 转换为 1?

javascript - jquery 选择器复选框

javascript - 可通过旋钮调整大小的 JQuery