在移动端中,div被触摸拖动的js事件是什么
在移动端中,处理触摸和拖动事件通常使用以下几个触摸事件:
touchstart
:当手指触摸屏幕时触发。touchmove
:当手指在屏幕上滑动时触发。touchend
:当手指从屏幕上移开时触发。要实现一个 div
元素在移动端被触摸拖动的效果,可以结合这几个事件来编写 JavaScript 代码。以下是一个简单的示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Touch Drag Example</title>
<style>
#draggable {
width: 100px;
height: 100px;
background-color: red;
position: absolute;
top: 50px;
left: 50px;
}
</style>
</head>
<body>
<div id="draggable"></div>
<script>
const draggable = document.getElementById('draggable');
let offsetX, offsetY;
draggable.addEventListener('touchstart', (e) => {
const touch = e.touches[0];
const rect = draggable.getBoundingClientRect();
offsetX = touch.clientX - rect.left;
offsetY = touch.clientY - rect.top;
});
draggable.addEventListener('touchmove', (e) => {
e.preventDefault(); // Prevent scrolling
const touch = e.touches[0];
draggable.style.left = `${touch.clientX - offsetX}px`;
draggable.style.top = `${touch.clientY - offsetY}px`;
});
draggable.addEventListener('touchend', (e) => {
// Optionally handle touch end event
});
</script>
</body>
</html>
在这个示例中:
touchstart
事件记录了手指触摸时相对于 div
元素的位置偏移。touchmove
事件更新 div
元素的位置,使其跟随手指移动。touchend
事件可以用来处理手指移开后的逻辑(在这个示例中没有具体实现)。请注意,e.preventDefault()
用于防止默认的触摸行为(如页面滚动),以确保拖动操作的流畅性。