使背景颜色发生变化

时间:2014-01-24 14:10:11

标签: javascript jquery html css fade

我有一个背景的页面,其样式显示为对角线。我希望这些行的颜色随着jQuery的变化而变化,并随着它们的变化而逐渐消失。这可能吗?

我已经开始在其中使用CSS来显示背景为静态。 http://jsfiddle.net/rabelais/LZc7m/

这是代码

body {
    background-image: -webkit-gradient(linear, right bottom, left top, color-stop(0, #fff), color-stop(0.25, #fff), color-stop(0.25, #9CC), color-stop(0.5, #9CC), color-stop(0.5, #fff), color-stop(0.75, #fff), color-stop(0.75, #9CC));
    background-image: -webkit-linear-gradient(right bottom, #fff 0%, #fff 25%, #9CC 25%, #9CCb 50%, #fff 50%, #fff 75%, #9CC 75%);
    background-image: -moz-linear-gradient(right bottom, #fff 0%, #fff 25%, #9CC 25%, #9CC 50%, #fff 50%, #fff 75%, #9cc 75%);
    background-image: -ms-linear-gradient(right bottom, #fff 0%, #fff 25%, #bbb 25%, #bbb 50%, #fff 50%, #fff 75%, #bbb 75%);
    background-image: -o-linear-gradient(right bottom, #fff 0%, #fff 25%, #9CC 25%, #9CC 50%, #fff 50%, #fff 75%, #9CC 75%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#9CC',GradientType=0 ); / IE6-8 */
    background-image: linear-gradient(right bottom, #fff 0%, #fff 25%, #9CC 25%, #9CC 50%, #fff 50%, #fff 75%, #9CC 75%);
    background-size: 5px 5px;
    width:100%;
    height:100%;
}

4 个答案:

答案 0 :(得分:1)

您可以将背景图像设为GIF,或者最好是PNG,如果您能够承受额外的尺寸,并使用透明度。您的图像将具有白色和透明条纹。然后将背景图像叠加在背景颜色之上,可以为背景颜色设置动画。效果将是线条颜色的变化。

答案 1 :(得分:1)

rgbflawed答案为基础......您需要Color Animation JS

这是一个JSfiddle example

$(document).ready(function () {
    $('html, body').click(function () {
        $('body').stop().animate({ backgroundColor: '#ff0000' }, 1200);
        $('body').delay(1200).animate({ backgroundColor: '#ffffff' }, 1200);
    });

});

CSS

body {
    background-image: url(http://i.stack.imgur.com/V3pEr.png);
    background-color: #12877f;
}

更新为here以淡出为白色

答案 2 :(得分:0)

我建议使用css3过渡而不仅仅是jQuery。 使用jQuery切换类并在单独的css文件中设置背景渐变。

示例:

.defaultClass{
    -webkit-transition: color 0.3s;
    -moz-transition: color 0.3s;
    -ms-transition: color 0.3s;
    -o-transition: color 0.3s;
    transition: color 0.3s;
}

.blue{
    background-color: blue;
}

.red{
    background-color: red;
}

在元素中添加蓝色类会使其在0.3秒内淡化为蓝色。

以下是它的小提琴:http://jsfiddle.net/Rudi91/sttdL/

编辑:最大的优点是jQuery动画在手机/平板电脑上运行缓慢,而css3动画通常运行顺畅

答案 3 :(得分:0)

我开发了一个轻量级jQuery插件(~3kb),它使用 CSS3过渡来完成您正在寻找的内容 - ColorRotator.js

您可以使用它来转换各种CSS颜色属性,例如背景颜色,框阴影颜色和文本颜色。将来会支持更多属性。

使用示例:

$('#element').colorRotator({
    colors: ['#1abc9c','#16a085','#2ecc71','#27ae60'],
    property: 'background'
});

以下是一些live demos