javascript实现文字跑马灯效果


Posted in Javascript onJune 18, 2020

本文实例为大家分享了js实现文字跑马灯效果的具体代码,供大家参考,具体内容如下

思路:

1.判断文字的长度和容器的长度,如果文字长度大于容器长度,则开始滚动,否则不滚动。

2.获取滚动条到元素左边的距离,递归滚动,直到滚动后的距离等于文字的长度退出递归。

判断文字和容器的长度可以通过offsetWidth来判断。如果文字长度大于容器长度,则开始滚动。

window.onload = function(){
       //比较文字与盒子长度的大小
       if(boxWidth>textWidth){
        return false;
       }
       content.innerHTML += content.innerHTML;
       document.querySelector('.text').classList.add('padding');
       //刷新textwidth
       textWidth = document.querySelector('.text').offsetWidth;
       scroll_left();
     }

判断滚动的结束根据滚动条到元素左边的距离和文字的长度判断,如果滚动条到元素左边的距离等于文字的长度,则结束滚动。

function scroll_left(){
    if(textWidth>boxWidth){
     //文字长度大于盒子长度,开始滚动
       box.scrollLeft++;
      setTimeout('scroll_left()',1);
   }
}

完整代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    *{
      margin: auto;
      padding: 0;
    }
    .box{
      margin-top: 150px;
      margin-left: 150px;
      color: red;
      white-space: nowrap;
      width: 200px;
      background: rosybrown;
      overflow: hidden;
    }
    .content p{
      display: inline-block;
    }
    .content p.padding{
      padding-right: 200px;
    }
  </style>
  


</head>
<body>
  <div class="box">
    <div class="content">
      <p class="text">实现文字的跑马灯效果,超出容器的长度则开始向左滚动</p>
    </div>
  </div>


  <script>
    
     let box = document.querySelector('.box');
     let content = document.querySelector('.content');
     let text = document.querySelector('.text');

    //文本宽度
    let textWidth = text.offsetWidth;
    //盒子宽度
    let boxWidth = text.offsetWidth;


     window.onload = function(){
       //比较文字与盒子长度的大小
       if(boxWidth>textWidth){
        return false;
       }
       content.innerHTML += content.innerHTML;
       document.querySelector('.text').classList.add('padding');
       //刷新textwidth
       textWidth = document.querySelector('.text').offsetWidth;
       scroll_left();
     }

     function scroll_left(){
       if(textWidth>boxWidth){
         //文字长度大于盒子长度,开始滚动
         box.scrollLeft++;
         setTimeout('scroll_left()',1);
       }
     }
  </script>

</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
apycom出品的jQuery精美菜单破解方法
Feb 18 Javascript
javascript实现禁止复制网页内容
Dec 16 Javascript
javascript与jquery中的this关键字用法实例分析
Dec 24 Javascript
RequireJS使用注意细节
May 15 Javascript
javascript基于原型链的继承及call和apply函数用法分析
Dec 15 Javascript
jquery.tableSort.js表格排序插件使用方法详解
Aug 12 Javascript
解决vuecli3.0热更新失效的问题
Sep 19 Javascript
详解React项目中碰到的IE问题
Mar 14 Javascript
简单了解Javscript中兄弟ifream的方法调用
Jun 17 Javascript
如何在项目中使用log4.js的方法步骤
Jul 16 Javascript
js实现一个简易计算器
Mar 30 Javascript
js 闭包深入理解与实例分析
Mar 19 Javascript
node.js +mongdb实现登录功能
Jun 18 #Javascript
VSCode launch.json配置详细教程
Jun 18 #Javascript
JavaScript中使用Spread运算符的八种方法总结
Jun 18 #Javascript
通过实例了解JS执行上下文运行原理
Jun 17 #Javascript
从0搭建vue-cli4脚手架
Jun 17 #Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
Jun 17 #Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
Jun 17 #Javascript
You might like
php连接mssql的一些相关经验及注意事项
2013/02/05 PHP
在Windows XP下安装Apache+MySQL+PHP环境
2015/02/22 PHP
jQuery表格行换色的三种实现方法
2011/06/27 Javascript
jquery延迟加载外部js实现代码
2013/01/11 Javascript
IE下window.onresize 多次调用与死循环bug处理方法介绍
2013/11/12 Javascript
javascript函数特点实例分析
2015/05/14 Javascript
浅谈Angularjs link和compile的使用区别
2016/10/21 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
从零开始搭建vue移动端项目到上线的步骤
2018/10/15 Javascript
vue filter 完美时间日期格式的代码
2019/08/14 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
js实现自定义滚动条的示例
2020/10/27 Javascript
采用Psyco实现python执行速度提高到与编译语言一样的水平
2014/10/11 Python
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
python实现五子棋人机对战游戏
2020/03/25 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
利用python实现周期财务统计可视化
2019/08/25 Python
Python高级property属性用法实例分析
2019/11/19 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
PyTorch实现AlexNet示例
2020/01/14 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
pycharm安装及如何导入numpy
2020/04/03 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
python爬取音频下载的示例代码
2020/10/19 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
Python 实现集合Set的示例
2020/12/21 Python
matplotlib之属性组合包(cycler)的使用
2021/02/24 Python
店长岗位的工作内容
2013/11/12 职场文书
小学开学标语
2014/07/01 职场文书
初中成绩单评语
2014/12/29 职场文书
工程资料员岗位职责
2015/04/13 职场文书
护士业务学习心得体会
2016/01/25 职场文书
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android
MySQL数据库查询之多表查询总结
2022/08/05 MySQL