• 技术文章 >web前端 >js教程

    Javascript怎么实现字幕滚动

    藏色散人藏色散人2021-06-18 11:49:27原创350

    Javascript实现字幕滚动的方法:首先创建HTML和css文件;然后将容器设置固定宽度,并设置超出部分隐藏;最后创建js文件并通过定时器改变位置即可。

    本文操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

    Javascript怎么实现字幕滚动?

    原生js实现字幕滚动

    使用css和原生js实现的字幕滚动效果,无缝衔接

    效果

    在这里插入图片描述

    原理

    容器设置固定宽度,超出部分隐藏,滚动部分绝对定位并通过定时器改变位置

    实现

    <p class="scroll">
        <span>这里是要现实的滚动内容......</span>
     </p>
    .scroll {
      width: 400px;
      height: 23px;
      white-space: nowrap;
      overflow: hidden;
      margin-left: 40px;
      position: relative;
    }
    .scroll > span {
      position: absolute;
    }
    // 字幕滚动变量
    var scrollTime = null
    var LEN = 400 // 一个完整滚动条的长度
    var x = 0
    // 启动滚动定时器
    function roll () {
      console.log('启动')
      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)
    }
    // 绑定鼠标事件
    function bindMouseEvent () {
      var el = document.querySelector('.scroll>span')
      var el2 = el.cloneNode(true)
      LEN = el.clientWidth + 100 // 动态修改滚动条的长度,避免文字过多重叠
      el2.style.left = (x + LEN) + 'px'
      el.parentElement.appendChild(el2)
      el.addEventListener('mouseenter', function (e) {
        clearInterval(scrollTime)
      })
      el.addEventListener('mouseleave', function (e) {
        roll()
      })
    }

    推荐学习:《javascript高级教程

    以上就是Javascript怎么实现字幕滚动的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:Javascript
    上一篇:浏览器启用javascript什么意思 下一篇:javascript背景图片怎么导入
    大前端线上培训班

    相关文章推荐

    • javascript为什么没有权限• javascript中求和的方法• javascript怎么设置固定时间• javascript中求最大值语句是什么• 浏览器启用javascript什么意思

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网