专业建站公司报价单,网站首页设计常见的6种布局方式,wordpress 豆瓣插件,定州网页设计方法定义#xff1a;
let shakeInfo {openFlag: false,// 是否开启摇一摇#xff0c;*****注意#xff1a;如果是小程序全局监听摇一摇#xff0c;这里默认为trueshakeSpeed: 110,//设置阈值,越小越灵敏shakeStep: 2000,//摇一摇成功后间隔lastTime: 0,//此变量用来记录…方法定义
let shakeInfo {openFlag: false,// 是否开启摇一摇*****注意如果是小程序全局监听摇一摇这里默认为trueshakeSpeed: 110,//设置阈值,越小越灵敏shakeStep: 2000,//摇一摇成功后间隔lastTime: 0,//此变量用来记录上次摇动的时间x: 0,y: 0,z: 0,lastX: 0,lastY: 0,lastZ: 0, //此组变量分别记录对应 x、y、z 三轴的数值和上次的数值
};
function openShakeEvent() {shakeInfo.openFlag true;
}
function closeShakeEvent() {shakeInfo.openFlag false;
}
function shakeOk() {closeShakeEvent();setTimeout(function () {openShakeEvent();}, shakeInfo.shakeStep);
}
/*** 判断是否为摇一摇*/
function shake(acceleration, successCallback) {if (!shakeInfo.openFlag) {return;}var nowTime new Date().getTime(); //记录当前时间//如果这次摇的时间距离上次摇的时间有一定间隔 才执行if (nowTime - shakeInfo.lastTime 100) {var diffTime nowTime - shakeInfo.lastTime; //记录时间段shakeInfo.lastTime nowTime; //记录本次摇动时间为下次计算摇动时间做准备shakeInfo.x acceleration.x; //获取 x 轴数值x 轴为垂直于北轴向东为正shakeInfo.y acceleration.y; //获取 y 轴数值y 轴向正北为正shakeInfo.z acceleration.z; //获取 z 轴数值z 轴垂直于地面向上为正//计算 公式的意思是 单位时间内运动的路程即为我们想要的速度var speed Math.abs(shakeInfo.x shakeInfo.y shakeInfo.z - shakeInfo.lastX - shakeInfo.lastY - shakeInfo.lastZ) / diffTime * 10000;//console.log(speed)if (speed shakeInfo.shakeSpeed) { //如果计算出来的速度超过了阈值那么就算作用户成功摇一摇successCallback();}shakeInfo.lastX shakeInfo.x; //赋值为下一次计算做准备shakeInfo.lastY shakeInfo.y; //赋值为下一次计算做准备shakeInfo.lastZ shakeInfo.z; //赋值为下一次计算做准备}
}方法调用在小程序启动首页页面onLoad添加如下代码 /*** 生命周期函数--监听页面加载*/onLoad: function(options) {//wx.onAccelerometerChange(function(acceleration) {Main.shake(acceleration, function() {Main.shakeOk();Main.openBarCodeDlg(); // 在这里调用摇一摇成功后执行的代码});});} 如果是小程序全局都监听摇一摇以上代码就可以实现如果只是配置指定某几个页面监听则需要在监听的页面做以下code
onShow: function() {Main.openShakeEvent();
},
onHide: function() {Main.closeShakeEvent();
}
这样在跳转到非监听页面时就不会执行你的代码了