左右滑动(Horizontal Scrolling)是一种网页设计效果,允许用户通过鼠标滚轮、触摸板或触摸屏在水平方向上滚动页面内容。这种效果通常用于展示超出视口宽度的内容,如长图、多图布局或横向排列的项目列表。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Horizontal Scrolling</title>
<style>
.scroll-container {
width: 100%;
overflow-x: auto;
white-space: nowrap;
}
.scroll-item {
display: inline-block;
width: 200px;
height: 200px;
background-color: lightblue;
margin-right: 10px;
}
</style>
</head>
<body>
<div class="scroll-container">
<div class="scroll-item"></div>
<div class="scroll-item"></div>
<div class="scroll-item"></div>
<div class="scroll-item"></div>
<div class="scroll-item"></div>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Horizontal Scrolling with JS</title>
<style>
.scroll-container {
width: 100%;
overflow: hidden;
position: relative;
}
.scroll-content {
display: flex;
transition: transform 0.5s ease;
}
.scroll-item {
width: 200px;
height: 200px;
background-color: lightblue;
margin-right: 10px;
}
</style>
</head>
<body>
<div class="scroll-container">
<div class="scroll-content" id="scrollContent">
<div class="scroll-item"></div>
<div class="scroll-item"></div>
<div class="scroll-item"></div>
<div class="scroll-item"></div>
<div class="scroll-item"></div>
</div>
</div>
<script>
const scrollContent = document.getElementById('scrollContent');
let isDragging = false;
let startX, scrollLeft;
scrollContent.addEventListener('mousedown', (e) => {
isDragging = true;
scrollContent.classList.add('active');
startX = e.pageX - scrollContent.offsetLeft;
scrollLeft = scrollContent.scrollLeft;
});
document.addEventListener('mouseup', () => {
isDragging = false;
scrollContent.classList.remove('active');
});
document.addEventListener('mousemove', (e) => {
if (!isDragging) return;
e.preventDefault();
const x = e.pageX - scrollContent.offsetLeft;
const walk = (x - startX) * 2; // scroll-fast
scrollContent.scrollLeft = scrollLeft - walk;
});
</script>
</body>
</html>
requestAnimationFrame
优化JavaScript动画。touchstart
、touchmove
、touchend
事件处理触摸滑动,阻止默认滚动行为。希望这些信息对你有所帮助!如果有更多具体问题,欢迎继续提问。
领取专属 10元无门槛券
手把手带您无忧上云