javascript - 带长度检测的水平文本滚动条 javascript/jquery

标签 javascript jquery html scroller

我正在寻找一种方法来进行水平文本滚动,仅当文本长度长于容器 DIV 时才滚动。有什么建议吗?

最佳答案

试试这个:

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标签的事件效果非常好。

关于javascript - 带长度检测的水平文本滚动条 javascript/jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1360782/

相关文章:

javascript - 改变div的颜色

html - 不同大小的文本在 div 中的同一行上

html - 如何用haml每隔几个div插入一个 block ?

css - 连续 4 个 Div block ,每个 block 中有 2 个 div

javascript - 错误 : Must use import to load ES Module: D:\node_modules\react-markdown\index. 不支持 ES 模块的 js require()

javascript - 如何使用 webpack 转换和缩小单个文件?

javascript - Chrome 扩展 : Refresh popup. html 到新的 html 页面

javascript - 矩阵所有行的值变化

javascript - DIV 不显示在与变量的链接上

javascript - hammer-time.min.js 包含未定义的函数 hasTouchNone