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 相关文章推荐
Prototype使用指南之ajax
Jan 10 Javascript
各种常用浏览器getBoundingClientRect的解析
May 21 Javascript
关于Mozilla浏览器不支持innerText的解决办法
Jan 01 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
Mar 14 Javascript
Javascript表格翻页效果的具体实现
Oct 05 Javascript
JQuery实现防止退格键返回的方法
Feb 12 Javascript
JavaScript基础——使用Canvas绘图
Nov 02 Javascript
DropDownList实现可输入可选择(两种版本可选)
Dec 07 Javascript
Bootstrap响应式表格详解
May 23 Javascript
Vue 项目代理设置的优化
Apr 17 Javascript
浅谈vue 锚点指令v-anchor的使用
Nov 13 Javascript
JS实现简易图片自动轮播
Oct 16 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
学习discuz php 引入文件的方法DISCUZ_ROOT
2009/06/21 PHP
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
2013/05/08 PHP
php中通过curl检测页面是否被百度收录
2013/09/27 PHP
Yii实现MySQL多数据库和读写分离实例分析
2014/12/03 PHP
Yii配置文件用法详解
2014/12/04 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
JQuery触发radio或checkbox的change事件
2012/12/18 Javascript
js实现双击图片放大单击缩小的方法
2015/02/17 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
2016/06/17 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
vue-cli脚手架config目录下index.js配置文件的方法
2018/03/13 Javascript
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
2018/07/31 NodeJs
原生js封装的ajax方法示例
2018/08/02 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
jQuery实现异步上传一个或多个文件
2020/08/17 jQuery
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
使用python解析xml成对应的html示例分享
2014/04/02 Python
python抓取网页时字符集转换问题处理方案分享
2014/06/19 Python
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
Python利用带权重随机数解决抽奖和游戏爆装备问题
2016/06/16 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
Linux安装Python3如何和系统自带的Python2并存
2020/07/23 Python
一款利用html5和css3实现的3D滚动特效的教程
2015/01/04 HTML / CSS
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
门卫人员岗位职责
2013/12/24 职场文书
关于赌博的检讨书
2014/01/08 职场文书
红色故事演讲稿
2014/05/22 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js
Golang ort 中的sortInts 方法
2022/04/24 Golang