【发布时间】:2015-12-06 17:29:25
【问题描述】:
我希望有一个简单的 div 在两种颜色之间无休止地褪色,即蓝色到红色、红色到蓝色、蓝色到红色等。
理想情况下,我应该有一个这样的函数,它只需要两种颜色以及它们之间褪色所需的时间。
toggle_color = function(color1, color2, time) { ... }
我尝试过使用 setInterval 和 setTimeout 来在它们之间切换,但它不是那么顺利(即 Fade)或循环。不知道如何做那部分。也不确定使用延迟是正确的道路。似乎用一个时间值不断地处于淡出状态可能更简单,但同样,不确定如何。
function toggle_color(color1, color2, cycle_time, wait_time) {
setInterval(function first_color() {
document.body.style.backgroundColor = color1;
setTimeout(change_color, wait_time);
}, cycle_time);
function change_color() {
document.body.style.backgroundColor = color2;
}
【问题讨论】:
-
只需几行 CSS 就可以简单得多。
-
时间将由一个单独的函数控制,所以我不能将该动态值插入 CSS。
-
正在考虑完全相同的事情@dfsq,没有看到需要 js,因为它只会减慢用户的进程。
-
使用
css会比使用javascript更快更流畅。您可以使用javascript更改css延迟以提供您想要的功能。考虑阅读this article 了解动画的不同性能。
标签: javascript loops colors