2015-09-15 22 views
6

ul ile ilgili çalışıyorum her saniyede 40 piksele kadar hareket edecektir. Stackoverflow'ta birçok çözüm deniyordum ama hiçbir şey yardımcı olmadı. Benim kodSetInterval yalnızca bir kez tekrar ediyor. Nasıl düzeltilir?

setInterval(function() { 
 
    $("#ul_news").animate({ 
 
    marginTop: -40 
 
    }, 300); 
 
}, 1000);
#ul_news { 
 
    /*position: absolute; 
 
    top: 0; 
 
    left: 100px; 
 
    z-index: 20;*/ 
 
} 
 
#ul_news li { 
 
    z-index: 20; 
 
    color: black; 
 
    list-style: none; 
 
    padding-bottom: 50px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
 

 
    <ul id="ul_news"> 
 
    <li class="active">ahoj2</li> 
 
    <li class="non_active1">ahoj3</li> 
 
    <li class="non_active2">ahoj4</li> 
 
    <li class="non_active3">ahoj5</li> 
 
    </ul>

+0

Alındığı ... – dandavis

cevap

7

var

Sen -=40px veya -=40 için -40 kullanmak gerekir. Sonra azaltmak istediğiniz Eğer Animasyonlu özellikler de göreceli olabilir

setInterval(function() { 
 
    $("#ul_news").animate({ 
 
    marginTop: '-=40px' 
 
    }, 300); 
 
}, 1000);
#ul_news { 
 
    /*position: absolute; 
 
    top: 0; 
 
    left: 100px; 
 
    z-index: 20;*/ 
 
} 
 
#ul_news li { 
 
    z-index: 20; 
 
    color: black; 
 
    list-style: none; 
 
    padding-bottom: 50px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
 

 
    <ul id="ul_news"> 
 
    <li class="active">ahoj2</li> 
 
    <li class="non_active1">ahoj3</li> 
 
    <li class="non_active2">ahoj4</li> 
 
    <li class="non_active3">ahoj5</li> 
 
    </ul>

-=40 gibi kullanmanız gerekiyorsa -40 sadece -40px olarak margin-top ayarlayacaktır. Bir değer, önde gelen bir + = veya - = dizi sırasına sahipse, hedef değer, verilen değerin mülkün geçerli değerinden eklenmesi veya çıkarılmasıyla hesaplanır.

yeniden taşımak için başka bir yere tekrar geri taşımak gerekir http://api.jquery.com/animate/#animation-properties

İlgili konular