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 相关文章推荐
在线编辑器中换行与内容自动提取
Apr 24 Javascript
js删除所有的cookie的代码
Nov 25 Javascript
javascript 处理null及null值示例
Jun 09 Javascript
jQuery不兼容input的change事件问题解决过程
Dec 05 Javascript
jQuery制作简洁的图片轮播效果
Apr 03 Javascript
JS实现的自定义右键菜单实例二则
Sep 01 Javascript
浅析JavaScript中作用域和作用域链
Dec 06 Javascript
AngularJS2中一种button切换效果的实现方法(二)
Mar 27 Javascript
vue中动态添加class类名的方法
Sep 05 Javascript
js中Array对象的常用遍历方法详解
Jan 17 Javascript
webpack4 optimization使用总结
Nov 10 Javascript
uniapp开发小程序的经验总结
Apr 08 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
MayFish PHP的MVC架构的开发框架
2009/08/13 PHP
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
php中current、next与reset函数用法实例
2014/11/17 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
2018/04/27 PHP
实例讲解PHP表单处理
2019/02/15 PHP
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
JS操作Cookies包括(读取添加与删除)
2012/12/26 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
js快速排序的实现代码
2013/12/08 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
基于jquery实现左右按钮点击的图片切换效果
2021/01/27 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
JS脚本实现动态给标签控件添加事件的方法
2016/06/02 Javascript
AngularJS 中的Promise --- $q服务详解
2016/09/14 Javascript
浅谈React组件之性能优化
2018/03/02 Javascript
element-ui 时间选择器限制范围的实现(随动)
2019/01/09 Javascript
解决layer图标icon不加载的问题
2019/09/04 Javascript
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
深入理解python函数递归和生成器
2016/06/06 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
Flask 让jsonify返回的json串支持中文显示的方法
2018/03/26 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
在unittest中使用 logging 模块记录测试数据的方法
2018/11/30 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
python函数局部变量、全局变量、递归知识点总结
2019/11/15 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
Django中从mysql数据库中获取数据传到echarts方式
2020/04/07 Python
使用Keras训练好的.h5模型来测试一个实例
2020/07/06 Python
AmazeUI的下载配置与Helloworld的实现
2020/08/19 HTML / CSS
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
请介绍一下Ant
2016/07/22 面试题
销售文员的岗位职责
2013/11/20 职场文书
人事代理委托书
2014/09/27 职场文书
学校办公室主任岗位职责
2015/04/01 职场文书
2015年酒店年度工作总结
2015/05/23 职场文书
金砖之国观后感
2015/06/11 职场文书