你如何在铁轨中改变背景?

时间:2015-11-13 23:21:43

标签: javascript jquery ruby-on-rails

我一直试图让我的应用程序不时更改背景图片,但我无法加载图片。我使用了Inspect Element而我没有为我的照片获得任何404但是rails似乎无法加载它们。 无论如何这里是我的代码到目前为止。现在它只是淡入淡出整个屏幕。

$(document).ready(function() {
    var backgrounds = ["medium2-doge-hannibal.jpg", "dog_bone_wide.jpg", "water_sports_medium.jpg"];

    function nextBackground() {

        var rand = Math.floor(Math.random() * backgrounds.length);
        $(".public-content").fadeOut(300, function () {
            $(".public-content").css("background", "asset-path("+backgrounds[rand]+" )");
            $(".public-content").fadeIn(300, function () {
                setTimeout(nextBackground, 3000)
            });
        });
    }
    nextBackground();
});

感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

jvnill是对的。

你需要append the .erb filetype到你的js:

#app/assets/javascripts/application.js.erb
function nextBackground() {
    var backgrounds = ["<%= asset_path('medium2-doge-hannibal.jpg') %>", "<%= asset_path('dog_bone_wide.jpg') %>", "<%= asset_path('water_sports_medium.jpg') %>"];
    var rand = Math.floor(Math.random() * backgrounds.length);

    $(".public-content").fadeOut(300, function () {
        $(".public-content").css("background", backgrounds[rand]);
        $(".public-content").fadeIn(300, function () {
            setTimeout(nextBackground, 3000)
        });
    });
}
$(document).ready(function() {
   nextBackground();
});