JavaScript 函数不适用于渐变
JavaScript function not working with gradients
很抱歉问题标题含糊不清,
var background = [
"background: linear-gradient(to left, #F0C27B, #4B1248)",
"background: linear-gradient(to left, #5614B0, #DBD65C)",
"background: linear-gradient(to left, #004FF9, #FFF94C)",
"background: linear-gradient(to left, #FFA17F, #00223E)",
"/css/1.png",
"/css/2.png",
"/css/3.png",
"/css/4.png"
];
setInterval(function() {
var chosenImage = Math.floor(Math.random() * (8));
if chosenImage < 4 {
document.body.style.backgroundColor = "url(" + background[chosenImage] + ")";
} else {
document.body.style.backgroundImage = "url(" + background[chosenImage] + ")";
}
}, 10000);
基本上,这(使用 css 和 html 文件)将网站上的背景图像打乱,每十秒显示一次随机图像。以前我有没有渐变的代码
var images = ["1.png", "2.png", ...] (up to 4)
和这样的设置间隔
setInterval(function() {
var chosenImage = Math.floor(Math.random() * (4));
document.body.style.backgroundImage = "url(" + background[chosenImage] + ")";
}, 10000);
它工作正常,但是一旦我实现了您在开始时在代码片段中看到的内容,图像就停止更改,而是显示我在 css 文件中指定的默认图像。
关于为什么它不随渐变而变化的任何想法?谢谢!
渐
变设置方式有几点问题。
首先,您不希望在样式中包含background:
,因为您已经直接分配给backgroundImage
和backgroundColor
属性。
其次,您不想用 url( )
包装渐变版本。 url( )
字面上期望一个URL,但你给它一个渐变。
最后,您不想使用 backgroundColor
,因为渐变被视为图像,因此您可以将脚本简化为类似的东西。
var background = [
"linear-gradient(to left, #F0C27B, #4B1248)",
"linear-gradient(to left, #5614B0, #DBD65C)",
"linear-gradient(to left, #004FF9, #FFF94C)",
"linear-gradient(to left, #FFA17F, #00223E)",
"url(/css/1.png)",
"url(/css/2.png)",
"url(/css/3.png)",
"url(/css/4.png)"
];
setInterval( function() {
var chosenImage = Math.floor( Math.random( ) * 8 );
document.body.style.background = background[ chosenImage ];
}, 10000 );
您的setInterval()
函数存在几个问题:
- 测试条件周围缺少括号
- 对于
background
数组的前四个元素,您将背景图像设置为"url("+[element]+")"
,但这些元素不是图像。相反,请将style
直接设置为该。
以下应该可以解决问题:
setInterval(function() {
var chosenImage = Math.floor(Math.random() * (8));
if (chosenImage < 4) {
document.body.style = background[chosenImage];
} else {
document.body.style.backgroundImage = "url(" + background[chosenImage] + ")";
}
}, 10000);
这应该可以解决问题。
相关文章:
- JQueryhide()不适用于Mozzilla,但适用于Chrome
- PHP中的setcookie仅适用于localhost
- html5 drawImage适用于firefox,而不是chrome
- 提供“;onClick"适用于iPad(触摸屏)和桌面用户的默认功能
- jQuery表单验证适用于Mozilla和Internet Explorer,但不适用于Chrome或Safari
- ResolveUrl是否适用于././也
- Firebase updateChildValues适用于IOS,但不适用于Web和Android
- JavaScript警报适用于int,但不适用于string
- SQLite插件适用于Mac和Windows,但不适用于手机上的Safari
- Regex Replace仅适用于Last Match
- window.onload适用于aspx页面,但不适用于普通html
- Jquery Ajax POST不工作.适用于GET
- 画布上的自定义字体仅适用于safari
- Javascript仅适用于alert()和Debug模式
- JS适用于Firefox和Safari,但不适用于Chrome.此处'是我的网站
- Regex不适用于Firefox,但适用于Chrome
- 通过单击主菜单外部关闭子菜单'不适用于IE,但适用于Firefox&铬
- AngularJS$http.post没有'不适用于Chrome,仅适用于IE
- Javascript仅适用于jQuery mobile中的页面刷新
- 关闭当前选项卡并打开一个新的-仅适用于Chrome