溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Javascript如何實(shí)現(xiàn)字幕滾動(dòng)

發(fā)布時(shí)間:2021-06-18 13:39:22 來(lái)源:億速云 閱讀:438 作者:小新 欄目:web開(kāi)發(fā)

小編給大家分享一下Javascript如何實(shí)現(xiàn)字幕滾動(dòng),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

Javascript實(shí)現(xiàn)字幕滾動(dòng)的方法:首先創(chuàng)建HTML和css文件;然后將容器設(shè)置固定寬度,并設(shè)置超出部分隱藏;最后創(chuàng)建js文件并通過(guò)定時(shí)器改變位置即可。

本文操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

Javascript怎么實(shí)現(xiàn)字幕滾動(dòng)?

使用css和原生js實(shí)現(xiàn)的字幕滾動(dòng)效果,無(wú)縫銜接

效果

Javascript如何實(shí)現(xiàn)字幕滾動(dòng)

原理

容器設(shè)置固定寬度,超出部分隱藏,滾動(dòng)部分絕對(duì)定位并通過(guò)定時(shí)器改變位置

實(shí)現(xiàn)

  • html部分

<p class="scroll">
    <span>這里是要現(xiàn)實(shí)的滾動(dòng)內(nèi)容......</span>
 </p>
  • css部分

.scroll {
  width: 400px;
  height: 23px;
  white-space: nowrap;
  overflow: hidden;
  margin-left: 40px;
  position: relative;
}
.scroll > span {
  position: absolute;
}
  • js部分

// 字幕滾動(dòng)變量
var scrollTime = null
var LEN = 400 // 一個(gè)完整滾動(dòng)條的長(zhǎng)度
var x = 0
// 啟動(dòng)滾動(dòng)定時(shí)器
function roll () {
  console.log('啟動(dòng)')
  var tag1 = document.querySelector('.scroll>span')
  var tag2 = tag1.nextSibling
  var fun = function () {
    tag1.style.left = x + 'px'
    tag2.style.left = (x + LEN) + 'px'
    x = x - 5
    if ((x + LEN) === 0) {
      x = 0
    }
  }
  if (scrollTime) {
    clearInterval(scrollTime)
  }
  scrollTime = setInterval(fun, 300)
}
// 綁定鼠標(biāo)事件
function bindMouseEvent () {
  var el = document.querySelector('.scroll>span')
  var el2 = el.cloneNode(true)
  LEN = el.clientWidth + 100 // 動(dòng)態(tài)修改滾動(dòng)條的長(zhǎng)度,避免文字過(guò)多重疊
  el2.style.left = (x + LEN) + 'px'
  el.parentElement.appendChild(el2)
  el.addEventListener('mouseenter', function (e) {
    clearInterval(scrollTime)
  })
  el.addEventListener('mouseleave', function (e) {
    roll()
  })
}

以上是“Javascript如何實(shí)現(xiàn)字幕滾動(dòng)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI