JS如何实现走马灯

走马灯思路和轮播图是一样的

先获取内容区域,可视区域的宽度

javascript 复制代码
// 获取内容区宽度
		contentWidth = $("#afficheContent")[0].scrollWidth;
		// 获取可视区宽度
		windowWidth = $("#afficheWindow")[0].offsetWidth;
		position = windowWidth;

首先判断内容区域是否小于可视区域,这样的话就没必要使用走马灯了

javascript 复制代码
function marquee() {
	if (contentWidth <= windowWidth) {
		clearInterval(affichTime)
		return
	}
	// 每次减少位置,模拟左移
	position -= 2;
	if (position < -contentWidth) {
		// 如果滚动到最左边,重新从右边开始
		position = windowWidth;
	}
	// 通过 transform 控制滚动
	$("#afficheContent").css("transform", `translateX(${position}px)`);
}

每次向左移动2(这里可以自己调,也可以在定时器内调他的速度),如果他的移动长度大于他内容区域的长度,就相当于已经轮播完毕了。之后进行重置。

定时器

javascript 复制代码
affichTime = setInterval(marquee, 20);
相关推荐
毛发浓密的女猴子9 小时前
Git Pull 策略完全指南:Merge、Rebase、Fast-forward 深度对比
前端
夏小花花9 小时前
<editor> 组件设置样式不生效问题
java·前端·vue.js·xss
PieroPC9 小时前
用 nicegui 3.0 + sqlite3 做个简单博客
前端·后端
weixin_307779139 小时前
Jenkins Ioncions API 插件:现代化图标库在持续集成中的应用
java·运维·开发语言·前端·jenkins
兔子零10249 小时前
零硬件交互:如何用纯前端把摄像头变成 4000 个粒子的魔法棒?
前端·算法
北辰alk9 小时前
Vue Router 组件内路由钩子全解析
前端·vue.js
AnAnCode9 小时前
【时间轮算法】时间轮算法的详细讲解,从基本原理到 Java 中的具体实现
java·开发语言·算法·时间轮算法
克喵的水银蛇9 小时前
Flutter 弹性布局实战:Row/Column/Flex 核心用法与优化技巧
前端·javascript·typescript
verse_armour9 小时前
东南大学云课堂导出PPT
javascript
JIngJaneIL9 小时前
基于Java二手交易管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot