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 相关文章推荐
jQuery调用RESTful WCF示例代码(GET方法/POST方法)
Jan 26 Javascript
Javascript闭包用法实例分析
Jan 23 Javascript
ECharts仪表盘实例代码(附源码下载)
Feb 18 Javascript
js图片延迟加载(Lazyload)三种实现方式
Mar 01 Javascript
weui框架实现上传、预览和删除图片功能代码
Aug 24 Javascript
使用Fullpage插件快速开发整屏翻页的页面
Sep 13 Javascript
js前端导出Excel的方法
Nov 01 Javascript
详解ES6语法之可迭代协议和迭代器协议
Jan 13 Javascript
微信小程序实现无限滚动列表
May 29 Javascript
详解IOS微信上Vue单页面应用JSSDK签名失败解决方案
Nov 14 Javascript
解决layer.prompt无效的问题
Sep 24 Javascript
JS原型prototype和__proto__用法实例分析
Mar 14 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面向对象全攻略 (九)访问类型
2009/09/30 PHP
C#静态方法与非静态方法实例分析
2014/09/22 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
Mootools 1.2教程 Tooltips
2009/09/15 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
浅析Javascript中bind()方法的使用与实现
2016/04/29 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
2018/09/12 Javascript
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法
2018/10/12 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
[01:33:25]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第一场 1月24日
2021/03/11 DOTA
初步解析Python中的yield函数的用法
2015/04/03 Python
Python使用sftp实现上传和下载功能(实例代码)
2017/03/14 Python
tensorflow 输出权重到csv或txt的实例
2018/06/14 Python
在Python 不同级目录之间模块的调用方法
2019/01/19 Python
对Python中画图时候的线类型详解
2019/07/07 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
使用Python封装excel操作指南
2021/01/29 Python
Get The Label中文官网:英国运动时尚购物平台
2017/04/19 全球购物
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
毕业生就业推荐信范文
2013/12/01 职场文书
年度考核自我鉴定
2014/02/02 职场文书
园林设计专业毕业生求职信
2014/03/23 职场文书
毕业晚会主持词
2014/03/24 职场文书
文艺晚会策划方案
2014/06/11 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
营销经理工作检讨书
2014/11/03 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
初中生物教学随笔
2015/08/15 职场文书
golang生成并解析JSON
2022/04/14 Golang