我正在使用視差滾動來創建網站的這個項目。它應該是一個長傳呼機。當您向下滾動頁面時,當您到達頁面的每個新部分時,背景顏色應該會改變。在滾動頁面的同時多次更改背景顏色
我已經花了幾天的時間搜索網絡,也在這裏在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次。此外,我希望它有一個平穩的過渡時,如改變顏色像小提琴:)
我希望有人可以幫助我,或只是指向正確的方向。
預先感謝您
爲什麼你想用javascript/jQuery來做到這一點?它可以通過css html – 2013-05-07 08:39:13
@Sarfaraz完成,CSS不支持滾動,你需要JS這個! – drinchev 2013-05-07 08:42:19
@Safaraz我認爲這是最好的解決方案,並且當它在顏色之間改變時我也想要一種動畫效果。但是,如果我可以在html css中完成,那將很棒。你能告訴我如何? – 2013-05-07 08:42:58