原生js实现水平方向无缝滚动

发布时间 - 2026-01-10 22:26:01    点击率:

水平方向无缝滚动

滚动支持图片,文字
原理 :一个大的盒子中放置两个盒子,通过设置offsetWidth,scrollLeft的关系来实现,而且还用到定时器函数setInterval,当手指移动上去定义滚动,离开继续滚动。兼容各大浏览器。
HTML代码

 <div id="demo">
    <div id="demoin">
      <div id="demo1">
        <a href="">测试文字1</a>
        <a href="">测试文字2</a>
        <a href="">测试文字3</a>
        <a href="">测试文字4</a>
        <a href="">测试文字5</a>
        <a href="">测试文字7</a>
        <a href="">测试文字8</a>
        <a href="">测试文字9</a>
        <a href="">测试文字10</a>
        <a href="">测试文字11</a>
        <a href="">测试文字12</a>
        <a href="">测试文字13</a>
        <a href="">测试文字14</a>
        <a href="">测试文字15</a>
        <a href="">测试文字16</a>
        <a href="">测试文字17</a>
      </div>
      <div id="demo2"></div>
    </div>
  </div>

CSS代码

#demo{
      width:1000px;
      height:30px;
      overflow:hidden;
      line-height:30px;
      font-size:13px;
      font-family:'宋体';
      background:#ddd url(images/notice.png) no-repeat 25px center;
      color:#0C77CF;
      font-weight:bold;
      margin: 0 auto;
    }
    #demoin {
      width: 900px;
      height: 30px;
      margin: 0 auto;
      white-space: nowrap;
      overflow: hidden;
    }
    #demo #demo1, #demo #demo2{display:inline}

Javascript代码

 window.onload = function(){
    scrollLeft();
  };
  function scrollLeft(){
    var speed = 20;
    var tab = document.getElementById('demoin');
    var tab1 = document.getElementById('demo1');
    var tab2 = document.getElementById('demo2');
    tab2.innerHTML = tab1.innerHTML;
    function Marquee(){
      if(tab2.offsetWidth - tab.scrollLeft <=0) {    
        tab.scrollLeft = 0;
      }else{
        tab.scrollLeft ++;
      }

    }
    var timer = setInterval(Marquee,speed);
    tab.onmouseover = function(){
      clearInterval(timer);
    };
    tab.onmouseout = function(){
      timer = setInterval(Marquee,speed);
    }
  }

效果图:

效果就是一直滚动。

注意:内容的宽度必须大于容器的宽度,否则无法滚动,测试文字一般是使用ajax后台获取。


# js无缝滚动  # js图片无缝滚动  # js水平方向无缝滚动  # 文字水平无缝滚动  # 原生JS实现风箱式demo  # 并封装了一个运动框架(实例代码)  # JS简单封装的图片无缝滚动效果示例【测试可用】  # 原生js实现无缝轮播图效果  # 原生JS实现图片轮播效果  # 原生JS实现图片无缝滚动方法(附带封装的运动框架)  # 各大  # 来实现  # 宋体  # width  # CSS 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  JS弹性运动实现方法分析  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  Laravel怎么在Controller之外的地方验证数据  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  海南网站制作公司有哪些,海口网是哪家的?  Python高阶函数应用_函数作为参数说明【指导】  jQuery中的100个技巧汇总  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  深圳网站制作的公司有哪些,dido官方网站?  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  如何在云服务器上快速搭建个人网站?  深入理解Android中的xmlns:tools属性  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  如何用狗爹虚拟主机快速搭建网站?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  昵图网官方站入口 昵图网素材图库官网入口  如何用JavaScript实现文本编辑器_光标和选区怎么处理  Android中AutoCompleteTextView自动提示  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  微信小程序 闭包写法详细介绍  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  BootStrap整体框架之基础布局组件  Bootstrap整体框架之JavaScript插件架构  想要更高端的建设网站,这些原则一定要坚持!  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  EditPlus中的正则表达式 实战(4)  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  太平洋网站制作公司,网络用语太平洋是什么意思?  Laravel如何保护应用免受CSRF攻击?(原理和示例)  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  创业网站制作流程,创业网站可靠吗?  phpredis提高消息队列的实时性方法(推荐)  如何选择PHP开源工具快速搭建网站?  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  如何注册花生壳免费域名并搭建个人网站?  Laravel怎么使用artisan命令缓存配置和视图  如何在 Pandas 中基于一列条件计算另一列的分组均值