2010-01-26 12 views
9

o (ya da sadece jQuery ancak javascript tercih) jQuery% 100 kesintisiz seçim çerçevesi oluşturmak mümkün mü?Dikişsiz jQuery Marquee?

Ben sadece ardından ekranın kapalı sağa (zaman görüntü dışında) atlar ve tekrar başlayana kadar sol hareket basit bir seçim çerçevesi yaptık. Ancak beklemeyi istemem.

Ben metni çoğaltmak ve ilk metinden sonra koymak için bunu yapmanın düşünebildiğim tek yolu, daha sonra yuvarlak tekrar değiş tokuş ediyorlar. Ancak jQuery'de bunu nasıl uygulayacağımı bilmiyorum, jQuery'nin .clone() modeline bakıyorum ama düzgün çalışmıyor, her şey atlıyor.

Herhangi bir fikrin var mı? şu biçimlendirme Verilen zaman için

sayesinde

+14

1995 gibi parti yapalım! – Kevin

+0

Eğiminiz tam olarak doğru. –

+0

Bunun için bir eklenti oluşturdum. Umarım bu yardımcı olur :) https://github.com/aamirafridi/jQuery-Marquee –

cevap

22

: Hareketli

$("#marquee").wrapInner("span"); // wrap "My Text" with a new span 
$("#marquee").append($("#marquee span").clone().hide()); // now there are two spans with "My Text" 

ve kapsamlarını takas geçerli: kopyalanması için,

<div id="marquee">My Text</div> 

, ben böyle bir şey yapmak istiyorum çok kolay. İşte tam işlevsel bir örnek:

$(function() { 

    var marquee = $("#marquee"); 
    marquee.css({"overflow": "hidden", "width": "100%"}); 

    // wrap "My Text" with a span (old versions of IE don't like divs inline-block) 
    marquee.wrapInner("<span>"); 
    marquee.find("span").css({ "width": "50%", "display": "inline-block", "text-align":"center" }); 
    marquee.append(marquee.find("span").clone()); // now there are two spans with "My Text" 

    // create an inner div twice as wide as the view port for animating the scroll 
    marquee.wrapInner("<div>"); 
    marquee.find("div").css("width", "200%"); 

    // create a function which animates the div 
    // $.animate takes a callback for when the animation completes 
    var reset = function() { 
     $(this).css("margin-left", "0%"); 
     $(this).animate({ "margin-left": "-100%" }, 3000, 'linear', reset); 
    }; 

    // kick it off 
    reset.call(marquee.find("div")); 

}); 

See it in action.

Yasal Uyarı:

Ben herhangi bir profesyonel web sitesi için bu önermiyoruz. Bununla birlikte, bir retro 1990'ın görünümünü yeniden üretmeye çalışıyorsanız faydalı olabilir.

+0

Marquee görünür pencereyi geçtikten sonra hala takas kodu gerekiyor. –

+2

Bu sorunsuz değil, metin bittikten sonra ve metnin yeniden başlamasından önce büyük bir boşluk var. – Evgeny

+1

@Evgeny, sorunsuz tanımınıza bağlıdır. Bu tasarım, ekranın bir silindir gibi hareket etmesini sağlayarak, bir tarafa akan metnin diğerine hemen görünmesine neden olur. boşluk içeriğine (vs boşluk, sekme) kendisinin bir parçası değildir verilen - Beni kesintisiz – Joel