如何用jquery动画改变背景颜色,就像一个过渡
How change background-color with jquery animation, like a transition
我正试图创建一个函数,将div的背景更改为数组中的颜色。我做了以下事情:
Html:
<div class="background">
Css:
.background {
width: 500px;
height: 500px;
margin: 0 auto;
background-color: #000;
}
Javascript:
function spectrum() {
var time = 0;
var colours = ['green', 'blue', 'red'];
var hue = colours[time];
$('.background').animate({
backgroundColor: hue
}, {
duration: 1000,
complete: function () {
time += 1;
spectrum();
}
});
};
问题是我不能像递归一样使用,它会更改背景一次并停止。。。我在这里做错了什么???
我试图找到一个可以使用的代码,但只找到了CSS3,我想支持IE8。
有人知道做我想做的事的好方法吗?
谢谢!
试试这个:
$('.background').css({
transition: 'background-color 1s ease-in-out',
"background-color": "red" });
问题是我不能像递归一样使用,它会改变背景一次,然后停止。。。我在这里做错了什么???
var time = 0;
在spectrum
的每次调用中将time
定义为0
,导致.animation()
的time += 1;
complete
函数在递归spectrum
调用中不应用。
要应用颜色动画效果,请尝试使用jQuery color
function spectrum(t) {
var colours = ["green", "blue", "red"];
var time = t && t < colours.length ? t : 0;
var hue = colours[time];
$(".background").animate({
backgroundColor: hue
}, {
easing: "linear",
duration: 1000,
complete: function() {
time += 1;
// recursively call `spectrum`,
// with `time` as argument
spectrum(time);
}
});
};
spectrum();
.background {
width: 500px;
height: 500px;
margin: 0 auto;
background-color: #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<script src="https://code.jquery.com/color/jquery.color.plus-names-2.1.2.min.js">
</script>
<div class="background"></div>
对不起,所有颜色都可以这样做:
function spectrum(){
var mcolors = ['green', 'blue', 'red'];
var time = 500;
$.each(mcolors, function(index, value){
setTimeout( function(){
$('.background').css({
transition: 'background-color 1s ease-in-out',
"background-color": value
}); }, time)
time += 1000;
});}
相关文章:
- 如何在上一个动画结束后开始动画
- 反应点击开始动画 + 第一个动画完成后开始另一个动画
- Skrollr.js在向上滚动时启动另一个动画
- 一个动画javascript中包含多个图像
- 如何在另一个动画正在进行时延迟运行动画
- 在前一个动画完成后,使用 javascript 重新触发 CSS 动画
- 如何将一个动画与另一个动画合并
- 将两个单独的元素附加到一个动画脚本
- 使用 jQuery 创建一个动画列表
- AngularJS动画带有回调,等待下一个动画开始
- 每次单独的动画到达某个位置时,运行并重置一个动画
- 在JQuery中开始下一个动画之前停止上一个动画
- 使用javascript创建一个动画信号栏
- 在偏置的小叶折线上添加一个动画箭头
- jQuery创建一个函数循环,每个函数都有一个动画队列
- 在开始另一个动画之前完成动画
- 等到动画完成再运行下一个动画
- 我想要一个动画触发活动,并继续一旦活动状态消失
- 一个大画布怎么能有一个动画'可视区域'
- 如何创建一个动画,像下面的链接使用画布