目录
  1. 1. touch
    1. 1.1. touchstart
    2. 1.2. touchmove
    3. 1.3. touchend
    4. 1.4. touchcancel
    5. 1.5. 使用
    6. 1.6. 滑动实现的原理:
移动触摸事件

touch

touch是移动端的触摸事件,而且是一组事件

利用touch相关事件实现移动端常见滑动效果和移动端常见的手势事件

touchstart

当手指触摸屏幕的时候触发

touchmove

当手指在屏幕来回的滑动时候触发

touchend

当手指离开屏幕的时候触发

touchcancel

当被迫终止滑动的时候触发(来电,弹消息)

使用

绑定事件:

window.onload = function () {
var box = document.querySelector('.box');
box.addEventListener('touchstart',function (e) {
console.log('start');
console.log(e);
});
box.addEventListener('touchmove',function (e) {
console.log('move');
console.log(e);
});
box.addEventListener('touchend',function (e) {
console.log('end');
console.log(e);
});

}

事件对象:

TouchList———触摸点(一个手指触摸就是一个触发点,和屏幕的接触点的个数)的集合

changedTouches

改变后的触摸点集合

targetTouches

当前元素的触发点集合

touches

页面上所有触发点集合

触摸点集合在每个事件触发的时候会不会去记录触摸

changedTouches 每个事件都会记录

targetTouches,touches 在离开屏幕的时候无法记录触摸点

滑动实现的原理:

就是让触摸的元素随着手指的滑动做位置的改变
位置的改变:需要当前手指的坐标
在每一个触摸点中会记录当前触摸点的坐标 e.touches[0] 第一个触摸点

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>Title</title>
<style>
body {
margin: 0;
padding: 0;
}

.box {
width: 200px;
height: 200px;
background: pink;
float: left;
}
</style>
</head>

<body>

<div class="box"></div>
<script>
window.onload = function () {
var box = document.querySelector('.box');
box.addEventListener('touchstart', function (e) {
console.log('start');
// 基于浏览器窗口(视口)
console.log(e.touches[0].clientX, e.touches[0].clientY);
// 基于页面(视口)
console.log(e.touches[0].pageX, e.touches[0].pageY);
// 基于屏幕
console.log(e.touches[0].screenX, e.touches[0].screenY);
});
box.addEventListener('touchmove', function (e) {
console.log('move');
});
box.addEventListener('touchend', function (e) {
console.log('end');
});

}
</script>
</body>

</html>

点击指示处,发现三串结果分别不同,试着拖动浏览器窗口

发现第三组数据有很大的改变,可以发现:

clientX clientY      基于浏览器窗口(视口)
pageX pageY 基于页面(视口)
screenX screenY 基于屏幕
文章作者: Jachie Xie
文章链接: https://xjc5772.github.io/2020-08/04/%E5%AD%A6%E4%B9%A0/%E5%89%8D%E7%AB%AF%E5%AD%A6%E4%B9%A0/%E7%A7%BB%E5%8A%A8Web/%E7%A7%BB%E5%8A%A8%E8%A7%A6%E6%91%B8%E4%BA%8B%E4%BB%B6/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 XJC&Blog
打赏
  • 微信
  • 支付宝

评论