原生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 中基于一列条件计算另一列的分组均值

