2011-05-25 54 views
7

我目前正在建設我的投資組合的網站,我有一點困難,基本上我有兩個小問題...垂直視差jQuery中

  1. 我不能得到的背景位置動畫中y軸時的位置包含一個「中心」在x軸上

  2. 屬性我不能得到的效果,同時滾動發生,暫停的時候我停止滾動,繼續當我繼續滾動

這裏是我使用的代碼:

//Top section parallax 
$(function parallaxInnerAnimation(){ 

    //Reset the background position 
    $('#first-canvas .inner').css({backgroundPosition: 'center 0px'}); 

    //Set the animations 
    $(window).scroll(function() { 
     $('#first-canvas .inner').animate({ 
     backgroundPosition:"(center -200px)" 
     }, 5000, 'linear'); 
    }); 

}); 

我使用jquery.backgroundPosition插件V1.22亞歷山大·法卡斯,和jQuery 1.6.1。

這個網站是CSS3和HTML5,主要旨在支持IE9,火狐4和Chrome 11等等。我正在做舊的瀏覽器不同的網站,以便向後兼容性可以犧牲

對不起如果它是一個愚蠢的問題,我不是一個真正的開發人員,更多的是可以編寫前端代碼的設計師,這要感謝他們。

UPDATE:

爲了把它在上下文中,我現在已經把它放在我的現場服務器http://charlieryan.co.uk/stack-overflow/

+0

你有一個活生生的例子?這聽起來很有趣,但很難知道發生了什麼問題。 – namuol 2011-05-25 14:06:18

+0

我沒有,但我只是把它放在我的服務器上 - http://charlieryan.co.uk/stack-overflow/謝謝! – 2011-05-25 17:21:48

+0

當我滾動時,我收到了一個javascript錯誤:'line32 of backgroundPosition.charlieryan.js:res is null'。 這可能是你的問題。 – namuol 2011-05-25 17:45:15

回答

1

我看着backgroundPosition.charlieryan.js插件,它不爲中心後臺位置支持。您可能需要修改插件並使用它。有一種方法稱爲toArray,我應該修改它。 js錯誤與此問題有關。讓我知道你是否需要更多的幫助。

+0

謝謝,我一直在尋找這個,但我遠離專家(腳本不是由我寫的,這個名字只是因爲我在數百個網站上工作,並且易於組織這樣的東西),我會如何去做這件事? – 2011-05-31 19:20:40

+0

請使用以下代碼替換該插件中的toArray方法 \t function toArray(strg){0} {0} {0} {0} strg = strg.replace(/ left | top/g,'0px'); \t strg = strg.replace(/ right | bottom/g,'100%'); strg = strg.replace(/ center/g,'50%'); strg = strg.replace(/ - \ s/g,' - '); strg = strg.replace(/([0-9 \。] +)(\ s | \)| $)/ g,「$ 1px $ 2」); ( - ?[0-9 \。] +)(px | \%| em | pt)\ s( - ?[0-9 \。] +)(px | \ \t var res = strg.match %| EM | PT)/); \t return [parseFloat(res [1],10),res [2],parseFloat(res [3],10),res [4]]; } 這將解決這個問題。 – ShankarSangoli 2011-05-31 20:51:32

+0

多數民衆贊成在完美,謝謝,現在我只需要制定問題的第二部分(關於滾動) – 2011-06-03 10:22:40

1
$(window).scroll(function() 
{ 
var yPos=-($(window).scrollTop()/6); 
if($(window).scrollTop()>100) 
{ 
    document.getElementById("div1_wrapper").style.backgroundPosition="100% "+yPos+"px"; 
} 
if($(window).scrollTop()<100) 
{ 
    document.getElementById("div1_wrapper").style.backgroundPosition="100% 100%"; 
} 
}); 

官方教程here