Natknąłem się na to stanowisko wczoraj, kiedy szukałem czegoś, co mogłoby zrobić to samo. Chociaż wybrałem inną drogę, zorientowałem się, jak to osiągnąć.
Po pierwsze, potrzebujesz swojego znacznika. Mamy zamiar używać znaczników DIV dla tego przykładu:
<div class="scroll-box">
<div class="scroll-text">This is the text that is too long to fit in the box</div>
</div>
Następny musimy go styl:
.scroll-box {
width: 100px;
height: 1.2em;
overflow: hidden;
position: relative;
}
.scroll-text {
position: absolute;
white-space: nowrap;
}
Teraz musimy niektóre jQuery:
$(document).ready(function() {
$('.scroll-box').bind('marquee', function() {
var boxWidth = $(this).width;
var textWidth = $('.scroll-text', $(this)).width();
if (textWidth > boxWidth) {
var animSpeed = textWidth - boxWidth * 20; // 50 pix per sec
$(this)
.animate({scrollLeft: textWidth - scrollWidth}, animSpeed)
.animate({scrollLeft: 0}, animSpeed, function() {
$(this).trigger(marquee);
});
}
}).trigger('marquee');
});
I tam masz to! Miły mały namiot typu side-to-side.
OŚWIADCZENIE: Nawet tego nie przetestowałem, a większość z tego jest poza moim zasięgiem, ale powinieneś być w stanie opracować drobne załamania, jeśli takie istnieją, ponieważ istnieje podstawowa koncepcja.
Ta wtyczka rzuca błędy, nie jest gładka i ma dziwaczne API. – Oleander