我想逐步改变背景颜色3次。渐进背景变化 - JavaScript
例如,我希望它逐渐从蓝色变成灰色变成紫色。目前,背景从蓝色转变为灰色。
试图说明吧:
= Blue
==
===
====
===== Grey
====
===
==
= Purple
可能有人请帮助我让它从灰色到紫色去第一个转换后吗?
$(document).ready(function(){
var scroll_pos = 0;
var animation_begin_pos = 0;
var animation_mid_pos = 500;
var animation_end_pos = 1000;
var beginning_color = new $.Color('rgb(0,156,243)');
var middle_color = new $.Color('rgb(36,40,47)');
var ending_color = new $.Color('rgb(97,20,204)');
$(document).scroll(function() {
scroll_pos = $(this).scrollTop();
if(scroll_pos >= animation_begin_pos && scroll_pos < animation_mid_pos) {
var percentScrolled = scroll_pos/(animation_mid_pos - animation_begin_pos);
var newRed = beginning_color.red() + ((middle_color.red() - beginning_color.red()) * percentScrolled);
var newGreen = beginning_color.green() + ((middle_color.green() - beginning_color.green()) * percentScrolled);
var newBlue = beginning_color.blue() + ((middle_color.blue() - beginning_color.blue()) * percentScrolled);
var newColor = new $.Color(newRed, newGreen, newBlue);
$('body').animate({ backgroundColor: newColor }, 0);
// messes up starting here
} else if (scroll_pos >= animation_mid_pos && scroll_pos <= animation_end_pos) {
scroll_ps = $(document).height() - $(this).scrollTop() - $(this).height();
var percentScrolled = scroll_pos/(animation_end_pos - animation_mid_pos);
var newRed = middle_color.red() + ((ending_color.red() - middle_color.red()) * percentScrolled);
var newGreen = middle_color.green() + ((ending_color.green() - middle_color.green()) * percentScrolled);
var newBlue = middle_color.blue() + ((ending_color.blue() - middle_color.blue()) * percentScrolled);
var newColor = new $.Color(newRed, newGreen, newBlue);
$('body').animate({ backgroundColor: newColor }, 0);
} else if (scroll_pos > animation_end_pos) {
$('body').animate({ backgroundColor: ending_color }, 0);
} else if (scroll_pos < animation_begin_pos) {
$('body').animate({ backgroundColor: beginning_color }, 0);
} else { }
});
});
我玩过一段时间:http://jsfiddle.net/Ldgevs6r/问题是,从灰色切换到紫色,正如你可以在小提琴中看到的百分比跳跃s从.998到.5,所以它使得初始启动开关变得非常大,并且它的超级引人注目。我会稍后再讨论它,看看我能否找到一种方法来使整个事物的价值规范化。 – AtheistP3ace