Javascript SASS random()总是返回相同的值,为什么?

Javascript SASS random()总是返回相同的值,为什么?,javascript,css,sass,Javascript,Css,Sass,正如你在这里看到的: 我正在尝试将一些javascript函数转换为SASS。一切正常,但这一个功能 我想将其转换为: var pallete = Math.floor(Math.random() * 210); $("article h2").each(function(i) { var hue = pallete + (i * 15); var css = 'background:hsl(' + hue + ',85%,70%); color:hsl(' + hue + ',45%

正如你在这里看到的: 我正在尝试将一些javascript函数转换为SASS。一切正常,但这一个功能

我想将其转换为:

var pallete = Math.floor(Math.random() * 210);

$("article h2").each(function(i) {
  var hue = pallete + (i * 15);
  var css = 'background:hsl(' + hue + ',85%,70%); color:hsl(' + hue + ',45%,55%);';
  $(this).attr("style", css);
});
变成这样:

@for $i from 1 through $articles {
  &:nth-child(#{$i}) {
    $random: random(210);
    $hue: $random + ($i * 15);
    background-color: hsl($hue, 85%, 70%);
    color: hsl($hue, 45%, 55%);
  }
}

在这种情况下,我的问题是,
random(210)
在每次页面加载时总是返回相同的值。是否有可能在每次运行
@时从random中获得不同的值,用于

否,这在任何正确的生产设置中都是不可能的。浏览器只理解CSS,所以SASS和几乎所有其他CSS预处理器通常只运行一次(在服务器上),而不是每次加载页面时在客户端上运行


例如,LESS有一个客户端编译器(LESS.js),但使用它会减慢页面加载过程,通常只适合于开发。如果你真的想要动态的颜色,考虑使用JavaScript建立相关的CSS或者保留旧的代码。您可以在客户端编译SASS、LESS等。这当然是个坏主意,但还是有可能的。@dragoste注意这个词usually@Pinocchio注意ThiefMaster的表达“那是不可能的。”答案已更新。我知道less有一个客户端编译器,但我希望没有人在生产站点上使用它。@ThiefMaster:令人震惊的是有多少人在生产中使用它-(请注意,
random()
目前不是Sass或Compass的功能,它是CodePen特有的功能(请参阅:和)