繁体   English   中英

如何将Rails变量传递到必须动态刷新(每60秒)的视图CSS中?

[英]How to pass a Rails variable into a view's CSS that must be refreshed dynamically (every 60 seconds)?

我有一个元素的background-image属性变量,我需要通过Rails应用程序中的某些后端逻辑每60秒修改一次。

如何从助手中获取变量或方法值到视图的CSS中?

目前,我有一个帮助程序,它从另一个来源中选择一个更新的URL。 我需要每分钟触发一次此帮助程序调用,以获取由以下CSS掩盖的源图像的更新URL:

.bg {
    background-image: url(http://mydomain.tld/someimage.jpg);
    background-repeat: no-repeat;    
    background-size: 203%;
    background-position: top left; 
    width: 256px;
    height: 256px;  
}

background-image url是需要在分钟内刷新的内容。

据我所知,您不能真正从视图代码中直接访问CSS-但是,您当然可以使用Javascript来应用CSS样式(JQuery使其很容易,并且默认情况下带有rails),并且您可以在您的实例中使用实例变量该Javascript中的控制器。

或者,您可以在视图中使用内联CSS-但这似乎比JS解决方案还糟。

编辑:

这是我所谈论的要点-这未经测试,但应该给您一个开始。

$(document).ready(function() {
    var refreshImage = function(){
        $.ajax({
              url: 'your helper url here',
              success: function( data ) {
                $(".bg").css("background-image" "url(" + data.url + ")"); 
                 setTimeout(refreshImage(), 60000); 
              }
        });
    }
    refreshImage();
});

基本上,您可以对准备就绪的文档进行调用,该调用将从您定义的某些操作中获取图片网址,然后在页面上进行设置,并“安排”自身在60秒内再次触发。

直接在页面上使用CSS进行操作,就像在页面上处理任何其他动态内容一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM