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);
相关推荐
梦幻精灵_cq3 小时前
学C之路:不可或缺的main()主函数框架(Learn-C 1st)
c语言·开发语言
love530love3 小时前
Scoop 完整迁移指南:从 C 盘到 D 盘的无缝切换
java·服务器·前端·人工智能·windows·scoop
消失的旧时光-19434 小时前
C++ 多线程与并发系统取向(二)—— 资源保护:std::mutex 与 RAII(类比 Java synchronized)
java·开发语言·c++·并发
王码码20355 小时前
Flutter for OpenHarmony:Flutter 三方库 bluez 玩转 Linux 风格的蓝牙操作(蓝牙底层互操作)
linux·运维·服务器·前端·flutter·云原生·harmonyos
福大大架构师每日一题5 小时前
go-zero v1.10.0发布!全面支持Go 1.23、MCP SDK迁移、性能与稳定性双提升
开发语言·后端·golang
五阿哥永琪5 小时前
1. 为什么java不能用is开头来做布尔值的参数名,会出现反序列化异常。
java·开发语言
逻极6 小时前
pytest 入门指南:Python 测试框架从零到一(2025 实战版)
开发语言·python·pytest
你的冰西瓜6 小时前
C++ STL算法——排序和相关操作
开发语言·c++·算法·stl
chilavert3187 小时前
技术演进中的开发沉思-371:final 关键字(中)
java·前端·数据库