2011-12-07 83 views
0

試圖做類似於這樣的事情:jQuery background-position animation但是沒有得到它的工作。想知道有沒有人可以幫忙。用jQuery移動背景位置

我在頁面上有一個jCarouselLite旋轉木馬。我有一個subnav到那個在頂部有一個小箭頭的jCarousel來表示,這是與在旋轉木馬中顯示的幻燈片相關的subnav。由於jCarouselLite沒有反饋功能,並且在項目中更改爲另一個輪播時間太晚,所以我需要查看是否可以使其工作。我原以爲我可以使用JS在與橫幅相同的定時循環中移動背景位置,但它不起作用。

這裏的JS我做:

function bannav(){ 
     var sp = new Array(-880,-700,-520,-360,-180); 
     var i=0; 
     for(i===1;i<=5;i++){ 
      position = sp[i]+'px 0px'; 
      window.setInterval(function(){ 
       $('div.container div.banner-holder ul#controls').animate(function(){ 
        $this.css('background-position', position); 
       }); 
       }, 8000); 
      if(i==5){i=0}; 
     }} 

所有它做的是佔用的頁面。我是盲目的看着它,所以我做了一些非常愚蠢的事情,提前道歉。任何幫助非常感謝。

T

+1

應該爲此(i === 1; i <= 5; i ++){ 只適用於(i = 1; i < = 5; i ++){ – TommyBs

+0

即將說相同:) –

+0

哈哈當它發生時就討厭它! – TommyBs

回答

0

望着這有什麼上述

function bannav(){ 
    var sp = new Array(-880,-700,-520,-360,-180); 
    var i=0; 
    for(i=1;i<=5;i++){ 
     position = sp[i]+'px 0px'; 
     window.setInterval(function(){ 
      $('div.container div.banner-holder ul#controls').animate(function(){ 
       $(this).css('background-position', position); 
      }); 
      }, 8000); 
     if(i==5){i=0}; 
    }} 

我做了一些改動這裏被提及。 1是我改變了for循環,如我以前的評論。我=== 1正在檢查我是否等於1,並且與我的類型相同,我不認爲這就是您想要在這裏執行的操作,您正在爲for循環分配值。其次,在前面列出的'this'回答後面,在jQuery的上下文中,我將它改爲了您使用.css而不是'this'的jquery $(this)對象,在這種情況下現在對正確的jquery對象的引用(ul id =「controls」)我相信

+0

乾杯湯米。實際上我發現我的錯誤遠遠超過了這個。 setInterval將等待8s,但同時for循環將完成。我需要重新解決我如何處理這個問題......感謝您的意見,不勝感激。 – tadywankenobi