Нацелиться
Цель к контейнерного DIV с фиксированной высотой и шириной, и имейте содержимое HTML в том, который DIV автоматически прокручивает вертикально непрерывно.
Вопрос В основном, который я создал код ниже использования jQuery для прокрутки (перемещает) дочерний DIV вертикально вверх пока его внешняя сторона, ограничение порождает поле, где анимация затем завершается, какие триггеры обработчик событий, который сбрасывает положение дочернего DIV и запускает процесс снова.
Это хорошо работает, таким образом, содержание прокручивает отъезд пробела и затем начинает с нижней части снова и прокручивает.
Проблема, которую я имею, который является требованиями для этого, состоит в том, чтобы содержание появилось, как будто это непрерывно повторялось, посмотрите ниже схемы для лучше объяснения этого, есть ли способ сделать это? (Я не хочу использовать сторонний разъем ins или библиотеки кроме jQuery):
(источник: cameroncooke.com)
Что я имею до сих пор
HTML:
This is a title
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse at orci mi, id gravida tellus. Integer malesuada ante sit amet enim pulvinar congue. Donec pulvinar dolor et arcu posuere feugiat id et felis.
More content....
CSS:
#scrollingContainer{
height: 300px;
width: 300px;
overflow: hidden;
}
#scrollingContainer DIV.scroller{
position: relative;
}
JavaScript:
/**
* Scrolls the content DIV
*/
function scroll() {
if($('DIV.scroller').height() > $('#scrollingContainer').height()) {
var t = $('DIV.scroller').position().top + $('DIV.scroller').height();
/* Animate */
$('DIV.scroller').animate(
{
top: '-=' + t + 'px'
}
, 4000, 'linear', animationComplete);
}
}
function animationComplete() {
$(this).css('top', $('#scrollingContainer').height());
scroll();
}
Вам нужно будет продублировать элементы содержимого и выровнять их так, чтобы они располагались вертикально рядом друг с другом, и прокручивать их вместе. Ваша текущая прокрутка должна работать, прыжок будет невидимым, потому что он должен переходить от верхней части нижнего элемента к верхней части верхнего элемента, то есть к той же части. Я бы поместил обе копии содержимого (вы можете просто .clone
его, чтобы получить другую копию) в контейнер и прокрутите его, чтобы вам не пришлось беспокоиться о перемещении двух элементов.
Если вы хотите действительно оптимизировать его, вы можете отображать только верхнюю часть (достаточно, чтобы скрыть скачок) содержимого в нижнем элементе, но если ваш контент не является действительно сложным и тяжелым, это не стоит усилий.
Вы хотите, чтобы содержимое "автоповторялось" и прокручивалось вечно? Вы должны иметь возможность добавить новый DIV под текстом и скопировать этот текст в новый DIV. Делайте это на основе позиции прокрутки, удаляя DIV выше, когда он исчезает из виду. По сути, вы просто копируете текст, помещаете новый DIV в нижнюю часть "стопки" и удаляете его сверху, когда он исчезает из вида.
Проще говоря, вам понадобятся два div, которые будут больше, чем поле прокрутки, и вам нужно будет переместить тот, который не виден, под тот, который виден. Если они одинаковые, это не должно быть заметно.