js ul 左右滑动js实现
实现UL元素左右滑动的方法
使用JavaScript实现UL元素的左右滑动效果,可以通过监听触摸事件或鼠标事件来完成。以下是几种常见的实现方式:
监听触摸事件实现滑动

const ulElement = document.querySelector('ul');
let startX, moveX;
ulElement.addEventListener('touchstart', (e) => {
startX = e.touches[0].clientX;
});
ulElement.addEventListener('touchmove', (e) => {
moveX = e.touches[0].clientX - startX;
ulElement.style.transform = `translateX(${moveX}px)`;
});
ulElement.addEventListener('touchend', () => {
// 添加滑动结束后的逻辑,如回弹或切换项目
});
使用CSS过渡增强滑动效果
ul {
display: flex;
overflow-x: auto;
scroll-snap-type: x mandatory;
transition: transform 0.3s ease;
-webkit-overflow-scrolling: touch; /* iOS平滑滚动 */
}
通过按钮控制滑动

const prevBtn = document.getElementById('prev');
const nextBtn = document.getElementById('next');
const scrollContainer = document.querySelector('ul');
nextBtn.addEventListener('click', () => {
scrollContainer.scrollBy({
left: 200,
behavior: 'smooth'
});
});
prevBtn.addEventListener('click', () => {
scrollContainer.scrollBy({
left: -200,
behavior: 'smooth'
});
});
使用第三方库实现
可以考虑使用Swiper.js等专门处理滑动的库:
import Swiper from 'swiper';
new Swiper('.swiper-container', {
slidesPerView: 'auto',
freeMode: true,
scrollbar: {
el: '.swiper-scrollbar',
},
});
注意事项
- 移动端需要添加
touch-action: pan-xCSS属性来防止默认垂直滚动 - 考虑添加边界检测,防止滑动超出内容范围
- 性能优化:对于大量列表项,建议使用虚拟滚动技术
- 无障碍访问:确保滑动内容可通过键盘操作
以上方法可根据具体需求选择或组合使用,纯CSS方案适合简单需求,JavaScript方案提供更多控制,第三方库则提供最完整的解决方案。






