以下是一个使用JavaScript实现简单手机滑屏效果的示例代码:
一、基础概念
touchstart
、touchmove
、touchend
)。这些事件用于检测用户在屏幕上的触摸动作开始、移动和结束。startX
、startY
)和移动过程中的坐标(moveX
、moveY
),计算出滑动的距离和方向,从而决定是否进行页面内容的滑动操作。二、代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF - 8">
<meta name="viewport" content="width=device-width, initial - scale = 1.0">
<title>手机滑屏示例</title>
<style>
#container {
width: 100vw;
height: 100vh;
overflow: hidden;
position: relative;
}
.slide {
width: 100vw;
height: 100vh;
position: absolute;
top: 0;
left: 0;
}
</style>
</head>
<body>
<div id="container">
<div class="slide" style="background - color: red;"></div>
<div class="slide" style="background - color: green; left: 100vw;"></div>
</div>
<script>
const container = document.getElementById('container');
let startX = 0;
let startY = 0;
let isMoving = false;
container.addEventListener('touchstart', function (e) {
const touch = e.touches[0];
startX = touch.clientX;
startY = touch.clientY;
isMoving = true;
});
container.addEventListener('touchmove', function (e) {
if (!isMoving) return;
const touch = e.touches[0];
const moveX = touch.clientX;
const moveY = touch.clientY;
const diffX = moveX - startX;
const diffY = moveY - startY;
// 判断是否为水平滑动(可根据需求调整阈值)
if (Math.abs(diffX)>Math.abs(diffY)) {
e.preventDefault();
container.style.transform = `translateX(${diffX}px)`;
}
});
container.addEventListener('touchend', function () {
isMoving = false;
const containerRect = container.getBoundingClientRect();
if (containerRect.left < -50) {
container.style.transform = `translateX(-100vw)`;
} else {
container.style.transform = `translateX(0)`;
}
});
</script>
</body>
</html>
三、优势
四、应用场景
领取专属 10元无门槛券
手把手带您无忧上云