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的类似新浪微博展示信息效果的代码
Jul 23 Javascript
使用 js+正则表达式为关键词添加链接
Nov 11 Javascript
JS中call/apply、arguments、undefined/null方法详解
Feb 15 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
Jul 14 Javascript
如何判断出一个js对象是否一个dom对象
Nov 24 Javascript
Bootstrap表格制作代码
Mar 17 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
Aug 26 jQuery
jQuery实现用户信息表格的添加和删除功能
Sep 12 jQuery
bootstrap 通过加减按钮实现输入框组功能
Nov 15 Javascript
微信小程序开发背景图显示功能
Aug 08 Javascript
Vue中JS动画与Velocity.js的结合使用
Feb 13 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
Oct 08 jQuery
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的5个安全措施小结
2012/07/17 PHP
php语言注释,单行注释和多行注释
2018/01/21 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
设定php简写功能的方法
2019/11/28 PHP
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
Javscript删除数组中指定元素并返回新数组
2014/03/06 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
JavaScript学习总结之JS、AJAX应用
2016/01/29 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
JavaScript &amp; jQuery完美判断图片是否加载完毕
2017/01/08 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
js+canvas实现滑动拼图验证码功能
2018/03/26 Javascript
JAVA面试题 static关键字详解
2019/07/16 Javascript
vscode 配置vue+vetur+eslint+prettier自动格式化功能
2020/03/23 Javascript
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
netbeans7安装python插件的方法图解
2013/12/24 Python
Python程序设计入门(4)模块和包
2014/06/16 Python
python实现自动登录人人网并访问最近来访者实例
2014/09/26 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
python+pandas分析nginx日志的实例
2018/04/28 Python
Python调用飞书发送消息的示例
2020/11/10 Python
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
如何实现jdbc性能优化
2012/07/30 面试题
2014学雷锋活动总结
2014/03/09 职场文书
合作协议书怎么写
2014/04/18 职场文书
求职信标题怎么写
2014/05/26 职场文书
中学生2014国庆节演讲稿:不屈的民族
2014/09/21 职场文书
一般纳税人申请报告
2015/05/18 职场文书
小学教师教育随笔
2015/08/14 职场文书
springboot集成redis存对象乱码的问题及解决
2022/06/16 Java/Android