`
498320858
  • 浏览: 393026 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

html5 实现摇一摇功能

 
阅读更多

需求:利用html5实现类似微信的手机摇一摇功能,并实现微博转发

 

难点:

1.监控摇动状态

2.播放摇动后音频

 

难点一,通过html5的DeviceMotionEvent实现,核心代码如下

 var SHAKE_THRESHOLD = 3000;    
    var last_update = 0;    
    var x=y=z=last_x=last_y=last_z=0;  

function init(){
if (window.DeviceMotionEvent) { 
	window.addEventListener('devicemotion',deviceMotionHandler, false);  
	} else{
		
	alert('not support mobile event');
	}
	}

    function deviceMotionHandler(eventData) {    
	
    var acceleration =eventData.accelerationIncludingGravity;  
	 
    var curTime = new Date().getTime(); 
    if ((curTime - last_update)> 100) {  
		var diffTime = curTime -last_update;    
		last_update = curTime;        
		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 > SHAKE_THRESHOLD) {    
	            alert("摇动了");
		}    
		last_x = x;    
		last_y = y;    
		last_z = z;    
		}    
     
 

难点二:代码

function deviceMotionHandler(eventData) {    
	
    var acceleration =eventData.accelerationIncludingGravity;  
	 
    var curTime = new Date().getTime(); 
    if ((curTime - last_update)> 100) {  
		var diffTime = curTime -last_update;    
		last_update = curTime;        
		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 > SHAKE_THRESHOLD) {    
	media.setAttribute("src","http://192.168.1.106/weixin_yaoyiyao.mp3");
	media.load();
	 media.play();
		}    
		last_x = x;    
		last_y = y;    
		last_z = z;    
		}    
     
    }  


 <audio style="display:hide" id="musicBox" preload="metadata"  controls
 src="http://192.168.1.106/weixin_yaoyiyao.mp3"
		autoplay="false"
     >
   </audio> 

 

 

此两种方式为目前唯一方式

 

但只能适用少数浏览器

 

ios平台,safari,可以监控摇动,但无法通过js直接播放音频

android平台,android os 自带浏览器无法监控摇动,但是第三方浏览器,opera,chrome均能监控摇动,也可以通过js直接播放音频

 

 

总之目前,用手机实现摇一摇功能,不能完全满足要求

 

 

分享到:
评论

相关推荐

    html实现摇一摇简单的功能

    通过HTML实现手机摇一摇的简单功能,并通过上传服务器实现手机摇一摇功能

    HTML5摇一摇功能

    在提供的压缩包文件中,可能包含了一个简单的HTML文件和JavaScript文件,展示了如何利用HTML5的Device Orientation API实现摇一摇功能。代码中可能包含了一些用于调试或测试的额外代码,使用者需要根据实际需求进行...

    HTML5微信摇一摇

    2. **Audio**:HTML5的Audio API可以播放、暂停和控制音频,为摇一摇功能增加声音效果,提升用户体验。 3. **WebSocket**:为了实现实时通信,HTML5的WebSocket协议可能被用于建立持久的双向连接,这样用户在摇动...

    html5实现的摇一摇

    在提供的"shake"文件中,可能包含了实现摇一摇功能的具体代码,包括HTML结构、CSS样式和JavaScript逻辑。JavaScript部分通常会包含上述步骤中的关键代码,例如添加事件监听器、解析设备运动数据以及执行摇一摇后的...

    h5 + js 仿微信摇一摇

    1. **HTML5 API**:H5提供了多种API,如DeviceOrientation事件,可以检测设备的移动和倾斜,这对于实现摇一摇功能至关重要。我们需要监听设备的加速度和陀螺仪数据,来判断用户是否在摇动手机。 2. **JavaScript...

    HTML5模拟微信摇一摇

    在模拟摇一摇功能时,我们需要监听设备的运动状态变化,通常通过`DeviceMotionEvent`事件来实现。当设备被摇动时,加速度值会发生显著变化,我们可以通过检测这些变化来判断用户是否在摇动设备。 2. **JavaScript...

    HTML 5实现手机摇一摇的功能.docx

    实现HTML5手机摇一摇功能的关键在于分析DeviceMotion事件中的加速度数据。当用户摇动手机时,加速度值会在三个轴上快速变化。为了准确判断用户是否在摇动手机,开发者需要设定一定的阈值,并记录之前的数据以计算...

    javascript html5摇一摇功能的实现_.docx

    通过上述步骤,我们可以利用HTML5提供的DeviceMotionEvent API轻松实现摇一摇功能。这项技术不仅可以提升用户体验,还能为应用程序增添趣味性。未来,随着硬件性能的进一步提升和技术的发展,摇一摇功能的应用场景将...

    基于html5-DeviceOrientation-实现微信摇一摇功能.doc

    基于html5-DeviceOrientation-实现微信摇一摇功能.doc

    html5小游戏 大话摇骰子

    总结来说,"大话摇骰子"是一个利用HTML5技术和JavaScript实现的在线小游戏。它通过Canvas绘制骰子,用JavaScript处理游戏逻辑,提供公平的随机数生成和有趣的互动元素,旨在为玩家带来真实而富有挑战性的掷骰子体验...

    HTML5手机微信摇一摇游戏代码.zip

    HTML5手机微信摇一摇游戏代码是一个利用HTML5技术实现的互动游戏,旨在模拟微信的摇一摇功能。这个游戏的核心是通过JavaScript库jQuery 1.11.1.min.js来处理用户交互和动画效果,使得在手机上玩时能够获得流畅的体验...

    用H5仿微信实现摇一摇,抢红包等效果

    4. `wechat-divination`:可能是一个实现摇一摇功能的代码模块,可能包含了处理DeviceMotionEvent和DeviceOrientation事件的代码。 5. `hamburger-button`:可能是一个实现汉堡菜单按钮的代码或样式,常见于移动设备...

    HTML5手机微信摇一摇游戏代码

    这些API是实现摇一摇游戏的关键,它们能捕捉到手机在三维空间中的运动状态。 3. 微信JSSDK:微信提供的JavaScript SDK允许开发者在微信内置浏览器内调用微信的服务,如分享、支付、获取用户信息等。在这个场景下,...

    微信摇一摇

    在摇一摇功能中,前端JS代码会监听设备的运动事件,当检测到特定的运动模式(比如快速水平或垂直移动)时,会触发摇一摇事件,并通过Ajax或WebSocket将这一事件发送到服务器。 在"摇一摇demo"这个文件中,很可能...

    手机摇一摇的功能

    经常我们玩微信都会用到查到附近的人,都是在app上实现手机摇一摇的功能。现在,我们将此技术搬移到手机web上,供大家学习,主要是用到HTML5的重要特性就是

    phonegap实现摇一摇打电话

    **摇一摇功能的实现:** 摇一摇功能是通过PhoneGap的加速计API来检测设备的运动状态。加速计API可以获取设备在三个轴(X、Y、Z)上的加速度值。当设备被摇动时,这些值会发生显著变化。开发者需要编写JavaScript代码...

    HTML5带音乐手机摇一摇抽奖代码.zip

    在本案例中,“HTML5带音乐手机摇一摇抽奖代码”是一个利用HTML5特性构建的互动抽奖应用,尤其适用于移动端。这个应用通过模拟“摇一摇”动作来触发抽奖事件,并配合背景音乐,为用户带来更为生动有趣的体验。 首先...

    HTML5实现的带音乐手机摇一摇抽奖特效源码.zip

    可能还会有按钮或提示,让用户知道如何启动摇一摇功能。 2. **CSS样式**:CSS用于美化界面,可能包括背景图片、动画效果等,以增强用户体验。例如,摇动时可能会有动态效果,如图片抖动、文字滚动等。 3. **...

    微信后摇一摇H5实现代码

    微信后摇一摇H5实现代码是利用HTML5、JavaScript以及可能的Web Audio API来创建一个功能,模拟微信中的“摇一摇”交互体验。在微信应用中,“摇一摇”是一个流行的功能,用户可以通过摇动手机触发特定的事件,如参与...

Global site tag (gtag.js) - Google Analytics