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 相关文章推荐
对象的类型:本地对象(1)
Dec 29 Javascript
js数组操作常用方法
May 08 Javascript
bootstrap改变按钮加载状态
Dec 01 Javascript
Jquery注册事件实现方法
May 18 Javascript
Underscore.js 1.3.3 中文注释翻译说明
Jun 25 Javascript
使用jquery插件qrcode生成二维码
Oct 22 Javascript
原生javascript实现解析XML文档与字符串
Mar 01 Javascript
JavaScript必知必会(二) null 和undefined
Jun 08 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
Nov 30 Javascript
node的process以及child_process模块学习笔记
Mar 06 Javascript
使用vue-cli3+typescript的项目模板创建工程的教程
Feb 28 Javascript
Moment的feature导致线上bug解决分析
Sep 23 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 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
2014/10/23 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
2010/03/15 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
JavaScript实现的石头剪刀布游戏源码分享
2014/08/22 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
基于jQuery实现页面搜索功能
2020/03/26 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
通过命令行生成vue项目框架的方法
2017/07/12 Javascript
VueJs组件prop验证简单介绍
2017/09/12 Javascript
JavaScript 异步调用
2017/10/25 Javascript
vue指令只能输入正数并且只能输入一个小数点的方法
2018/06/08 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
JavaScript实现HSL拾色器
2020/05/21 Javascript
vue实现抽屉弹窗效果
2020/11/15 Javascript
Python 关于反射和类的特殊成员方法
2017/09/14 Python
基于python中pygame模块的Linux下安装过程(详解)
2017/11/09 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
PyQT5 emit 和 connect的用法详解
2019/12/13 Python
django自定义模板标签过程解析
2019/12/14 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
2020/11/27 Python
台湾旅游网站:灿星旅游
2018/10/11 全球购物
2015年圣诞节寄语
2015/08/17 职场文书
goland设置颜色和字体的操作
2021/05/05 Golang
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
彻底解决MySQL使用中文乱码的方法
2022/01/22 MySQL
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL
详解Nginx的超时keeplive_timeout配置步骤
2022/05/25 Servers