我一直在尋找parallax effects在我的網頁上進行垂直滾動,經過一番研究後,我不確定我想要做的技術上是視差效果。如何根據滾動條移動來移動DIV的背景圖像?
從我所看到的情況來看,大多數視差效果都假設您希望能夠無限滾動滾動的許多背景圖像,或者使用重複的巨大圖像。
我想要做的是當滾動條到達頁面底部時,背景圖像將填充兩個DIV。 請注意,我不希望背景圖像拉伸。我假設要得到我希望這些圖像的垂直高度大於大多數人的視口的效果,然後他們的垂直位置會發生變化。當用戶的滾動條位於頂部時,可以看到一定量的背景,然後在用戶向下滾動時垂直移動以填充背景空間。
請參考下面的圖像的希望acheive的效果的視覺解釋:
的veiwport的高度將根據內DIV中的內容的長度而變化。
我的麻煩是,如果我想要做的並不完全是視差效應,那麼我不知道還有什麼要稱它,而且我試圖通過描述它來搜索,使我回到提供教程的頁面上視差效應。所以我因爲缺乏術語而陷入困境。
如果有人可以指導我如何根據滾動條位置來控制背景的垂直位置,那將非常感激。如果只用CSS就可以做到這一點,但我假設需要一些Javascript。 jQuery解決方案也適用於我。
更新:
使用意見提出的條款,搜索後,我有外DIV的背景圖像幾乎做我想做的用下面的代碼:
$(window).scroll(function() {
var yPos = $("#outerDiv").height() - ($("#outerDIV").height() * ($(window).scrollTop()/$(window).height()));
document.getElementById('outerDIV').style.backgroundPosition="0px " + yPos + "px";
});
它將背景圖像相對於滾動向右移動,但它缺少的是將該運動限制在視口內。基於視口和DIV大小獲得正確的比例被證明只是超出了我的數學能力。
'background-position'是CSS屬性,'scroll'是事件,'scrollTop'是JavaScript屬性。 – Ryan