이번에는 휴대폰이 흔들리는 횟수를 계산하는 H5를 가지고 왔습니다. H5가 휴대폰을 흔든 횟수를 계산하는 주의사항은 무엇인가요?
1. deviceOrientation: 방향 센서 데이터를 캡슐화하는 이벤트 는 휴대폰의 각도, 방향, 방향 등과 같은 정적 상태 에서 휴대폰의 방향 데이터를 얻을 수 있습니다.
2. deviceMotion: 모션 센서 데이터를 캡슐화하여 휴대폰이 움직일 때 모션 가속도와 같은 데이터를 얻을 수 있는 이벤트입니다.
코드로 바로 가봅시다:
var jsonObject=null; // 当页面加载完以后会执行window.onload window.onload = function() { var times = -1; // 记录摇动次数 var last_time = 0; var borderSpeed = 800; // 加速度变化临界值 var x = y = z = last_x = last_y = last_z = 0; if (window.DeviceMotionEvent) { window.addEventListener('devicemotion',shake,false); } else { alert('您的设备不支持摇一摇哦'); } // 每次手机移动的时候都会执行下面shake函数的代码 function shake(eventData) { var acceleration = eventData.accelerationIncludingGravity; var curTime = new Date().getTime(); var diffTime = curTime-last_time; // 每隔100ms进行判断 if (diffTime>100) { x = acceleration.x; y = acceleration.y; z = acceleration.z; var speed = Math.abs(x + y + z - last_x - last_y - last_z) / diffTime * 10000; // 判断手机确实发生了摇动而不是正常的移动 if (speed>borderSpeed) { times++; document.getElementById("text").innerHTML=times+" times"; // 用户的微信昵称和头像连接发送一次即可,不需要每次都发送 if (times==0) { document.forms["insertForm"].headimg.value =img ; document.forms["insertForm"].user.value = nickname; } document.forms["insertForm"].time.value = times; } last_time = curTime; last_x = x; last_y = y; last_z = z; } } }
html:
<img src="hand.png"> <br/><font size="16" color="red" id="text"></font>
이 글의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 내용을 보려면 주목해 주세요. PHP 중국어 웹사이트의 다른 관련 기사를 확인하세요!
추천 자료:
H5의 window.postMessage 및 크로스 도메인
H5의 멀티스레딩(Worker SharedWorker) 자세한 설명
위 내용은 H5는 휴대폰이 흔들리는 횟수를 계산합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!