携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第 7 天,点击查看活动详情
移动端-真机调试
1、确保手机和电脑是在同一个局域网下面的
2、启一个本地服务器
我使用的是 http-server
安装
npm install http-server -g
启动
http-server
3、Mac下调试移动端
-
在ios设备上设置允许调试
设置 -> Safari浏览器 -> 高级 -> 网页检查器 打开
-
在Mac上打开Safari浏览器的开发菜单
顶部菜单栏中:Safari浏览器 -> 偏好设置 -> 高级 -> 勾选 '在菜单栏中显示“开发”菜单'
-
打开调试页面
使用有线连接手机与电脑;
在ios上的浏览器访问要调试的页面 -> 在mac上的Safari浏览器点击'开发'菜单 -> 找到ios设备名称 -> 选择右侧二级菜单上对应的调试页面地址,即可调试了。
4、Android调试 数据线链接电脑与手机
window自带浏览器
访问地址:edge://inspect/#devices
Chrome进入 chrome://inspect/#devices
手机上打开开发者模式,打开USB调试
开启inspect debug
TouchEvent
TouchEvent 是一类描述手指在触摸平面(触摸屏、触摸板等)的状态变化的事件。这类事件用于描述一个或多个触点,使开发者可以检测触点的移动,触点的增加和减少,等等。
创建一个demo.html, 内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script>
(function () {
var metaEl = document.createElement('meta');
var scale = 1;
metaEl.setAttribute('name', 'viewport');
metaEl.setAttribute('content', 'initial-scale=' + (1 / scale) + ', maximum-scale=' + (1 / scale) + ', minimum-scale=' + (1 / scale) + ', user-scalable=no');
document.documentElement.firstElementChild.appendChild(metaEl);
})();
</script>
<title>Document</title>
<style>
#box1 {
width: 60vw;
height: 60vw;
background: red;
color: #fff;
font-size: 20px;
}
</style>
</head>
<body>
<div id="box1"></div>
<script>
{
/*
touches 当前屏幕上的手指列表
targetTouches 当前元素上的手指列表
changedTouches 触发当前事件的手指列表
*/
box1.addEventListener("touchmove",(e)=>{
box1.innerHTML = `
当前屏幕上的手指个数:${e.touches.length}<br/>
当前元素上的手指个数:${e.targetTouches.length}<br/>
触发当前事件的手指个数:${e.changedTouches.length}<br/>
`
});
document.addEventListener("touchstart",(e)=>{
console.log(e)
e.preventDefault();
},{
passive: false
})
}
</script>
</body>
</html>
打印出的touchevent内容信息,与页面显示内容:
滑屏操作
思路:滑屏类似于拖拽;
1、手指按下:记录位置
let startY = 0; // 按下时元素的位置
let translateY = 0; // 开始元素位置
let startPointY = 0;//按下时手指的位置
['滑动元素'].addEventListener("touchstart",({changedTouches})=>{
startPointY = changedTouches[0].clientY; // 开始位置
startY = translateY;
});
2、手指移动:记录手指新的位置,元素跟着手指移动相同距离
['滑动元素'].addEventListener("touchmove",({changedTouches})=>{
let nowPointY = changedTouches[0].clientY; // 移动后位置
let disY = nowPointY - startPointY;
translateY = startY + disY; // 移动距离
['滑动元素'].style.transform = `translateY(${translateY}px)`;
});