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 相关文章推荐
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
Jan 29 Javascript
javascript根据像素点取位置示例
Jan 27 Javascript
jquery文档操作wrap()方法实例简述
Jan 10 Javascript
jQuery中Ajax的get、post等方法详解
Jan 20 Javascript
js实现双击图片放大单击缩小的方法
Feb 17 Javascript
灵活的理解JavaScript中的this指向
Feb 25 Javascript
Node.js的Express框架使用上手指南
Mar 12 Javascript
漂亮! js实现颜色渐变效果
Aug 12 Javascript
Angular2表单自定义验证器的实现
Oct 19 Javascript
JS 60秒后重新发送验证码的实例讲解
Jul 26 Javascript
关于jquery layui弹出层的使用方法
Apr 21 jQuery
Node.js爬虫如何获取天气和每日问候详解
Aug 26 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实现下载文件的两种方法
2013/07/05 PHP
php模拟ping命令(php exec函数的使用方法)
2013/10/25 PHP
php将access数据库转换到mysql数据库的方法
2014/12/24 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
PHP正则表达式笔记与实例详解
2019/05/09 PHP
详解js闭包
2014/09/02 Javascript
javascript实现倒计时N秒后网页自动跳转代码
2014/12/11 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
微信小程序 实战实例开发流程详细介绍
2017/01/05 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
2017/02/19 Javascript
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
JS实现随机抽选获奖者
2019/11/07 Javascript
JS实现可控制的进度条
2020/03/25 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
[03:17]2016完美“圣”典风云人物:冷冷专访
2016/12/08 DOTA
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
python使用win32com在百度空间插入html元素示例
2014/02/20 Python
Python简单进程锁代码实例
2015/04/27 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
2018/11/10 Python
浅谈Python中eval的强大与危害
2019/03/13 Python
python实现微信定时每天和女友发送消息
2019/04/29 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
在线学习西班牙语、法语或其他语言:Babbel.com
2018/02/07 全球购物
2014社区三八妇女节活动总结
2014/03/01 职场文书
环保建议书400字
2014/05/14 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
校运会加油稿大全
2015/07/22 职场文书
小学运动会入场口号
2015/12/24 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android