我正在做这个项目,我正在使用视差滚动创建一个网站。它应该是一个长的一页传呼机。当您向下滚动页面时,当您到达页面的每个新部分时,背景颜色应该会发生变化。
我花了几天时间在网上搜索,也在 stackoverflow 上搜索,但我没有找到任何可以按我想要的方式工作的东西。
我在堆栈上找到了这个脚本:
var tStart = 100 // Start transition 100px from top
, tEnd = 500 // End at 500px
, cStart = [250, 195, 56] // Gold
, cEnd = [179, 217, 112] // Lime
, cDiff = [cEnd[0] - cStart[0], cEnd[1] - cStart[1], cEnd[1] - cStart[0]];
$(document).ready(function(){
$(document).scroll(function() {
var p = ($(this).scrollTop() - tStart) / (tEnd - tStart); // % of transition
p = Math.min(1, Math.max(0, p)); // Clamp to [0, 1]
var cBg = [Math.round(cStart[0] + cDiff[0] * p), Math.round(cStart[1] + cDiff[1] * p), Math.round(cStart[2] + cDiff[2] * p)];
$("body").css('background-color', 'rgb(' + cBg.join(',') +')');
});
});
http://jsfiddle.net/dtZDZ/12/这是小提琴
这个脚本完全符合我的要求,除了我只来回改变一次颜色。当您向下滚动页面时,我需要它更改背景颜色 4-5 次。我也希望它在改变颜色时像小提琴一样平滑过渡:)
我希望有人可以帮助我解决这个问题,或者只是为我指明正确的方向。
先感谢您