答案 0 :(得分:2)
以下是我的解决方案:http://jsfiddle.net/2kc44/或more complete。
我首先声明一个positions
/ colors
数组
你可以简单地使用:
var colors = {
0: "#FFFFFF",
300: "#FF0000",
600: "#00FF00",
900: "#0000FF"
}
或更多的参数:
var colors = {
0: {c: "#FFFFFF", t: "White" },
300: {c: "#FF0000", t: "Red" },
600: {c: "#00FF00", t: "Green" },
900: {c: "#0000FF", t: "Blue" }
}
此功能:
$(window).scroll( changeBG );
function changeBG(e){
var pos = $(window).scrollTop();
for (var c in colors)
if(pos >= c) $("body").css( { backgroundColor: colors[c] } );
}
它很干净,并且很容易添加更多颜色,但它可以更加优化。
答案 1 :(得分:1)
也许从一点开始:http://jsfiddle.net/Z47mY/在这里,您可以根据滚动位置定义颜色。
$(document).ready(function() {
$(window).scroll(function(event) {
var color="#ffffff";
var position = $(window).scrollTop() / $(window).height();
if(position > 0.3) {
color="#ff0000";
}
if(position > 0.8) {
color="#00ff00";
}
$("body").css({backgroundColor: color});
});
});
答案 2 :(得分:1)
据我所知,我创造了一个小提琴:
http://jsfiddle.net/Zword/6Kkmf/
<强> JQuery的:强>
$(document).ready(function() {
$("#colors").scroll(function(event) {
$('.clor').each(function(){
var s=$(this).attr('id');
var r=s.substring(1,2);
var calc=parseInt(r)-1;
if($("#colors").scrollTop()>=($('.clor').height()*calc) && $("#colors").scrollTop()<($('.clor').height()*r))
{
var color=$('#'+s).css('backgroundColor');
$("#preview").css({backgroundColor: color});
}
});
});
});