Wie man ständig scrollen Inhalt in einem DIV mit jQuery?
Ziel
Ziel ist es, zum einen haben Sie einen DIV-container mit fester Höhe und Breite und den HTML-Inhalt in das DIV automatisch scrollen vertikal kontinuierlich.
Frage
Im Grunde habe ich den code unter Verwendung von jQuery scrollen (verschieben) der child-DIV vertikal nach oben, bis Ihr außerhalb des umschließenden übergeordneten box, wo die animation dann fertig löst einen Ereignis-handler, die setzt die position des untergeordneten DIV-Element und startet den Prozess erneut.
Dies funktioniert gut, so ist der Inhalt scrollt lässt ein Leerzeichen und dann beginnt Sie von unten wieder und blättert.
Das problem, das ich habe ist, dass die Anforderungen für diese ist der Inhalt angezeigt, als wenn Sie Sie ständig wiederholen, siehe unten Diagramm, um besser zu erklären, gibt es eine Möglichkeit, dies zu tun? (Ich will nicht zu verwenden 3rd-party-plug-ins oder die anderen Bibliotheken als jQuery):
(Quelle: cameroncooke.com)
Was ich bisher
HTML:
<div id="scrollingContainer">
<div class="scroller">
<h1>This is a title</h1>
<p>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.</p>
<p>More content....</p>
</div>
</div>
Die 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();
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie zu duplizieren content-element und richten Sie Sie so, dass Sie senkrecht neben einander, und scrollen Sie im tandem. Ihre aktuelle scrolling arbeiten, sollte das springen wird unsichtbar denn es sollte springen von der Spitze das element unten an die Spitze der top-element, das heißt, eine gleiche-auf der Suche Teil. Ich würde mal sagen beide Kopien der Inhalte (Sie können nur
.clone
es, um die andere Kopie) in einem container und scrollen, dass, so dass Sie nicht haben, um sorgen über das verschieben von zwei Elementen.Wenn Sie wollen, um wirklich zu optimieren, konnten Sie zeigen nur den oberen Teil (genug zu verstecken, springen) wird der Inhalt in das element unten, aber es sei denn, Ihr Inhalt ist wirklich Komplex und schwer, es ist nicht der Mühe Wert.
Sie möchten die Inhalte auf "auto-repeat" und scrollen Sie für immer? Sie sollten in der Lage sein, um fügen Sie ein neues DIV-Element unter dem text, und kopieren Sie diesen text in die neue DIV. Dies basiert auf die scroll-position das entfernen der DIV oben, wenn es geht, aus dem Blick. Im Grunde bist du nur zu kopieren Sie den text, schob ein neues DIV an der Unterseite der "stack" und knallende es aus der Spitze, wenn es aus dem Blick.
Einfach gesagt, brauchst du zwei divs, die größer sind als das scroll-Feld, und Sie müssen zu bewegen, verschieben Sie die eine, die nicht sichtbar unterhalb der eine, ist. Wenn die zwei sind genau die gleichen, es sollte nicht spürbar sein.
Versuchen Sie dies:
Beispiel arbeiten können hier eingesehen werden:
http://www.timeswellness.com/index.aspx?page=others&rightnav=false&do=CancerDay