У меня есть структура данных HTML-таблицы, и я смог получить цикл в вертикальном списке с помощью некоторого javascript, но я не могу понять, как сделать его гладкой постоянной вертикальной прокруткой, прямо сейчас он идет 1 к 1, когда строка достигает вершины и присоединяется к себе. Даже если setInterval установлен в 0, он имеет кратковременную раздражающую паузу. Кроме того, мой фрагмент из 10, похоже, иногда не содержит список до 10, но не уверен, что это мой JavaScript или проблема с браузером.Бесконечная петля Smooth Vertical Javascript
JS
$.fn.infiniteScrollUp=function(){
var self=this,kids=self.children()
kids.slice(10).hide()
setInterval(function(){
kids.filter(':hidden').eq(0).slideDown()
kids.eq(0).slideUp(function(){
$(this).appendTo(self)
kids=self.children()
})
},1)
return this
}
$(function(){
$('section').infiniteScrollUp()
})
HTML
<table>
<thead>
<div>
<span>a</span>
<span>b</span>
<span>c</span>
<span>d</span>
</div>
</thead>
<section>
<div><span>a</span><span>2</span><span>3</span><span>4</span></div>
<div><span>b</span><span>2</span><span>3</span><span>4</span></div>
<div><span>c</span><span>2</span><span>3</span><span>4</span></div>
<div><span>d</span><span>2</span><span>3</span><span>4</span></div>
<div><span>e</span><span>2</span><span>3</span><span>4</span></div>
<div><span>f</span><span>2</span><span>3</span><span>4</span></div>
<div><span>g</span><span>2</span><span>3</span><span>4</span></div>
<div><span>h</span><span>2</span><span>3</span><span>4</span></div>
<div><span>i</span><span>2</span><span>3</span><span>4</span></div>
<div><span>j</span><span>2</span><span>3</span><span>4</span></div>
<div><span>k</span><span>2</span><span>3</span><span>4</span></div>
<div><span>l</span><span>2</span><span>3</span><span>4</span></div>
<div><span>m</span><span>2</span><span>3</span><span>4</span></div>
<div><span>n</span><span>2</span><span>3</span><span>4</span></div>
<div><span>o</span><span>2</span><span>3</span><span>4</span></div>
<div><span>p</span><span>2</span><span>3</span><span>4</span></div>
<div><span>q</span><span>2</span><span>3</span><span>4</span></div>
<div><span>r</span><span>2</span><span>3</span><span>4</span></div>
<div><span>s</span><span>2</span><span>3</span><span>4</span></div>
<div><span>t</span><span>2</span><span>3</span><span>4</span></div>
<div><span>u</span><span>2</span><span>3</span><span>4</span></div>
<div><span>v</span><span>2</span><span>3</span><span>4</span></div>
<div><span>w</span><span>2</span><span>3</span><span>4</span></div>
<div><span>x</span><span>2</span><span>3</span><span>4</span></div>
<div><span>y</span><span>2</span><span>3</span><span>4</span></div>
<div><span>z</span><span>2</span><span>3</span><span>4</span></div>
</section>
</table>
Вот JSFiddle
Это было именно то, что я собирался. Спасибо Cayce K !! – mkweick
Cayce - Я динамически добавляю и удаляю элементы в этой таблице через ajax и пытался отключить прокрутку, когда дети <11 и включили прокрутку назад, когда дети> 10, но не могли понять. Есть предположения? – mkweick
Поиск clearinterval. Я не могу полностью дать вам ответ на этот вопрос, потому что это не прямолинейно, но я уверен, что clearinterval - это маршрут, по которому вам придется идти. И каждый раз, когда вы добавляете один, вы возвращаете setinterval. –