@megamutex

Как реализовать бесконечный список?

Здравствуйте! Есть блок, в котором есть список, который в свою очередь каждую секунду сдвигается вниз на определенное кол-во пикселей. Вопрос: как сделать, чтобы список не закачивался, был бесконечным, т.е., чтобы "крутился бесконечно"?
3e0f650f323c48c89c182c807e5e0d6a.jpg
  • Вопрос задан
  • 1137 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Во-первых, реализация тут будет несколько отличаться в зависимости от верстки, а конкретно, если наш внешний блок имеет position == absolute || relative || fixed то задаем нашему листу position: absolute и работаем с его свойством top, в ином случае придется работать с свойством margin-top, что медленнее в отрисовке.

Собственно по реализации:
я допущу, что у Вас уже сохранен jQuery объект списка в переменной $list, что работаем мы все таки со свойством top и у Вас уже где-то есть таймер в котором это свойство top уменьшается, вот туда нужно будет добавить следующий код:
var $li = $list.find('li:eq(0)');
var h = $li.height();
var top = +$list.css('top');
if(top < -2 * h) { //если список поднялся больше чем на 2 высоты 1 элемента
    $li.remove().appendTo($list); //перемещаем элемент в конец списка
    $list.css('top', (top + h) + 'px'); //опускаем список на высоту элемента,
                         //так как мы его убрали вначале
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Тебе нужно блок который ушел вверх с области видимости перемещать вниз блока.
Что то на подобии такого $('#list li:eq(0)').appendTo($('#list'));
Он ищет в списке первый элемент и перемещает его в конец
Ответ написан
@mletov
М б стоит посмотреть в Гугл по запросу "Jquery вертикальный слайдер"
Например, ruseller.com/adds/adds2223/example
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы