2009-09-01 37 views
1

我正在尋找一種方法來做水平文本滾動只滾動文本長度比容器DIV長。任何建議如何做到這一點?長度檢測水平文本滾動javascript/jquery

+0

我需要文本自動滾動,就像CNN上的「股票行情」一樣。 – 2009-09-01 08:43:28

回答

0

試試這個:

CSS

.container { width: 600px; background: #ccc; } 
.ticker { white-space: nowrap; } 

HTML

<div class="container"> 
<span class="ticker">Some short text that isn't greater than the browser window</span> 
<span class="ticker">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed facilisis metus quis augue facilisis elementum. Pellentesque aliquet congue tristique. Phasellus feugiat cursus lobortis. Cras et massa odio, et vehicula nisi. Donec adipiscing condimentum diam sed hendrerit. Curabitur eros elit, aliquet et aliquam id, facilisis id nisi. Vivamus dictum commodo libero, eu venenatis nulla sodales in. Maecenas rhoncus, dui at sollicitudin scelerisque, neque lectus viverra metus, vel elementum nisl ante quis mi. Cras sagittis enim ac arcu scelerisque tristique vel in dolor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras vehicula leo vel lacus blandit ut adipiscing lorem sodales.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed facilisis metus quis augue facilisis elementum. Pellentesque aliquet congue tristique. Phasellus feugiat cursus lobortis. Cras et massa odio, et vehicula nisi. Donec adipiscing condimentum diam sed hendrerit. Curabitur eros elit, aliquet et aliquam id, facilisis id nisi. Vivamus dictum commodo libero, eu venenatis nulla sodales in. Maecenas rhoncus, dui at sollicitudin scelerisque, neque lectus viverra metus, vel elementum nisl ante quis mi. Cras sagittis enim ac arcu scelerisque tristique vel in dolor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras vehicula leo vel lacus blandit ut adipiscing lorem sodales. Vestibulum ultricies elementum mattis. Maecenas sit amet turpis magna. Phasellus posuere mi nec nisi sodales non dapibus nibh faucibus. Vestibulum leo tellus, blandit sed auctor id, faucibus quis sem. Sed at purus quam. Praesent eget ante sem, a scelerisque nulla. Praesent id quam sit amet eros viverra euismod. Integer volutpat vulputate aliquam. Aliquam convallis dolor tellus, in cursus justo. Donec molestie consequat dolor. Nunc imperdiet arcu et justo vehicula mollis. Suspendisse id molestie velit. Morbi sed est arcu, non aliquam augue.</span> 
</div> 

腳本

$(document).ready(function(){ 
var tickerWidth = '100%'; // add '%' or 'px' to this variable 
var tickerSpeed = 10; // 0 = stopped, 30 = almost too fast 
var tickerDelay = 0; // delay in ms 
var tickerDirection = 'left'; // options = left, right (up & down work as well, but not the way you want) 
var tickerMouseoverPause = true; 
var tickerLoopTimes = 0; // 0 = infinite # of loops 

$('.ticker').each(function(){ 
    if ($(this).width() > $(this).parent().width()) { 
    var marq = $('<marquee></marquee>').attr({ 
    'behavior' : 'scroll', 
    'scrollamount' : tickerSpeed, 
    'direction' : tickerDirection, 
    'width' : tickerWidth 
    }) 
    if (tickerLoopTimes != 0) { 
    marq.attr('loop', tickerLoopTimes) 
    } 
    if (tickerMouseoverPause) { 
    marq.attr({ 
    'onmouseover' : 'this.stop()', 
    'onmouseout' : 'this.start()' 
    }) 
    } 
    $(this).wrap(marq); 
    } 
}) 
}) 

這個腳本基本上包裝了一個<marquee>文本,得到它的屬性的更多信息請查看this site

注意我嘗試使用不顯眼的jQuery爲此,在選取框上使用hover,但它不起作用。但添加內聯mouseovermouseout事件到標籤工作得很好。

0

這裏是一個很好的一個

JavaScript Bs_ScrollableDiv

+0

它是否也可以自動滾動,就像CNN上的「股票行情」一樣? – 2009-09-02 05:48:05

+0

只是簡單的事情..不需要有噸的JS代碼或重型插件 – 2009-09-02 05:50:14