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 相关文章推荐
来自qq的javascript面试题
Jul 24 Javascript
javascript提取URL的搜索字符串中的参数(自定义函数实现)
Jan 22 Javascript
jQuery 三击事件实现代码
Sep 11 Javascript
JavaScript实现的日期控件具体代码
Nov 18 Javascript
利用JS判断用户是否上网(连接网络)
Dec 23 Javascript
javascript通过元素id和name直接取得元素的方法
Apr 28 Javascript
基于canvas的二维码邀请函生成插件
Feb 14 Javascript
详细分析jsonp的原理和实现方式
Nov 20 Javascript
Vue.js实现分页查询功能
Nov 15 Javascript
简单了解TypeScript中如何继承 Error 类
Jun 21 Javascript
Vue3 中的数据侦测的实现
Oct 09 Javascript
vue中注册自定义的全局js方法
Nov 15 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 echo 输出字符串函数详解
2010/05/13 PHP
Laravel的throttle中间件失效问题解决方法
2016/10/09 PHP
js或css文件后面跟参数的原因说明
2010/01/09 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
javascript实现列表滚动的方法
2015/07/30 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
Javascript中replace()小结
2015/09/30 Javascript
javascript图片延迟加载实现方法及思路
2015/12/31 Javascript
js实现对table的增加行和删除行的操作方法
2016/10/13 Javascript
Javascript使用SWFUpload进行多文件上传
2016/11/16 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
使用python编写android截屏脚本双击运行即可
2014/07/21 Python
python获取文件扩展名的方法
2015/07/06 Python
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
Python中表示字符串的三种方法
2017/09/06 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
pybind11在Windows下的使用教程
2019/07/04 Python
python将时分秒转换成秒的实例
2019/12/07 Python
python中关于数据类型的学习笔记
2020/07/19 Python
W Concept美国:精选全球独立设计师
2017/02/22 全球购物
Laura官网:加拿大女性的顶级时尚目的地
2019/09/20 全球购物
一套VC试题
2015/01/23 面试题
毕业生在校学习的自我评价分享
2013/10/08 职场文书
自我评价怎么写正确呢?
2013/12/02 职场文书
养殖行业的创业计划书
2014/01/05 职场文书
小学生作文评语大全
2014/04/21 职场文书
团队口号大全
2014/06/06 职场文书
开展创先争优活动总结
2014/08/28 职场文书
2016元旦文艺汇演主持词
2015/07/06 职场文书