在我的CSS中获得随机变量模糊

时间:2018-03-20 22:45:16

标签: javascript getelementbyid blur

我想将数学函数的结果放入我的css文件中,这种模糊是可变的。但它不起作用,我不知道如何,因为没有错误。变量号介于1和5之间。

这是我正在使用的Javascript代码:

var minNumber = 1;
var maxNumber = 5;
var result;

var randomNumber = randomNumberFromRange(minNumber, maxNumber);

function randomNumberFromRange(min, max) {
    result = Math.floor(Math.random() * (max - min + 1) + min);
    return;
}


document.getElementById("test").style.filter = blur(result + "px");

3 个答案:

答案 0 :(得分:2)

将该样式设置为字符串:

document.getElementById("test").style.filter = "blur(" + result + "px)";

var minNumber = 1;
var maxNumber = 5;
var result;

var randomNumber = randomNumberFromRange(minNumber, maxNumber);

function randomNumberFromRange(min, max) {
  result = Math.floor(Math.random() * (max - min + 1) + min);
}

document.getElementById("test").style.filter = "blur(" + result + "px)";
#test {
  position: absolute left: 10px;
  top: 10px;
  background-color: lightgreen;
  width: 200px;
  height: 200px;
  z-index: 9999;
  opacity: .9;
}

#test2 {
  position: absolute;
  left: 30px;
  top: 40px;
  background-color: black;
  width: 100px;
  height: 100px;
}
<div id="test">
</div>
<div id="test2"></div>

答案 1 :(得分:1)

检查您的控制台。您应该收到错误消息,指出blur未定义。

blur不是JS中定义的函数,而是CSS过滤器函数,因此在您的情况下应该设置为字符串。

例如:

document.getElementById("test").style.filter = 'blur('+result+'px)';

如果您的情况可以使用ES6,您也可以使用template string并将值插入嵌入式表达式:

document.getElementById("test").style.filter = `blur(${result}px)`;

答案 2 :(得分:1)

您需要将模糊作为文本值传递给CSS过滤器属性:

var minNumber = 1;
var maxNumber = 5;
var result;

var randomNumber = randomNumberFromRange(minNumber, maxNumber);

function randomNumberFromRange(min, max) {
    result = Math.floor(Math.random() * (max - min + 1) + min);
    return;
}

console.log('random value for blur: ', result);
document.getElementById("test").style.filter = 'blur('+ result +'px)';
<p id="test">test</p>