2013-01-15 104 views
0

我有一個函數,我想循環。我發現最簡單的方法是使用setInterval。當我嘗試這個功能只運行一次。請告訴我哪裏出錯了。乾杯jQuery setInterval不循環

function empMove() { $('.emp-wrap').css('margin-top', '-100px')}; 

setInterval(empMove, 2000); 

我有一個div與多行,我想一次只顯示一個,因此我每次都減少margin-top。

回答

5

當前的代碼將頂部邊距設置爲-100px。嘗試

function empMove() { $('.emp-wrap').css('margin-top', '-=100')};

+0

感謝那些偉大工程。你能否澄清我的代碼正在循環,但它不斷地將margin-top設置爲相同的值? –

+1

@ClintonGreen [jQ文檔](http://api.jquery.com/css/#css2)。 '.css(propertyName,value)'**將指定的CSS屬性**設置爲**值。所以,如果你使用'.css('margin-top','-100px')',它**將**頂邊距**設置爲**精確到-100像素。第二次和以後對'empMove()'的調用不會改變上邊距。由於div的上邊距保持在-100px,因此div不會移動。 '.css('margin-top',' - = 100')',另一方面**將當前頂部邊距減少100px。 – TwiNight

+0

酷,感謝您的解釋:)乾杯 –

1

我強烈建議的jQuery插件時機(2KB)GitHub RepositoryDocs)。

它提供了易於使用的循環動畫等等。看一看:

function empMove() { 

    $('.emp-wrap').css('margin-top', '-=100px').repeat().wait(2000); 
}; 
+0

謝謝我會檢查出插件。乾杯 –

0
function displayOnly() { 
    var initHeight = $('.wrapper').height(); 
    $('.wrapper').height(initHeight); 
    $('p').not('.read').fadeOut(2000, function() { 
     if ($(this).is(':last-child')) { 
      $('.wrapper').animate({ 
       height: $('.inner').height() 
      }, 2000); 
     } 
    }); 
} 

$("button").click(displayOnly); 

在行動on fiddle