由jquery mobile在电话差距中实现方向改变事件
有人可以通过手机间隙中的jquery mobile告诉我正确的方向更改事件代码吗? 我在哪里以及如何实现此orientationChange函数?
$(window).bind( 'orientationchange', function(e){ if ($.event.special.orientationchange.orientation() == "portrait") { //Do whatever in portrait mode } else { //Do Whatever in landscape mode } });
如果您的目标是iOS并且orientationchange不起作用,则可以在bind函数的event参数中添加resize事件。 由于更改方向也会触发resize事件。
以下代码应适用于所有浏览器以检测方向更改。 它不使用jquery移动事件,但似乎适用于大多数设备。
1. var isIOS = /safari/g.test(navigator.userAgent.toLowerCase()); 2. var ev = isIOS ? 'orientationchange' : 'resize'; 3. var diff = (window.innerWidth-window.innerHeight); 4. $(window).bind(ev,function(){ 5. setTimeout(function(){ 6. if(diff*((window.innerWidth-window.innerHeight)) < 0) 7. orientationChanged(); 8. },500); 9. });
第2行占用任何非Safari浏览器的resize事件,因为其他设备中的其他浏览器比方向更改事件更一致地占用resize事件。 http://www.quirksmode.org/m/table.html
第5行在超时时执行检查,因为某些Android本机浏览器不会立即占用新的宽度。
第6行为了进行方向更改,新旧高度和宽度差异的乘积应为负数。
我在我的移动模板中使用此function,因为在iOS 7 Safari上未触发orientationchange事件:
// ORIENTATION CHANGE TRICK var _orientation = window.matchMedia("(orientation: portrait)"); _orientation.addListener(function(m) { if (m.matches) { // Changed to portrait $('html').removeClass('orientation-landscape').addClass('orientation-portrait'); } else { // Changed to landscape $('html').removeClass('orientation-portrait').addClass('orientation-landscape'); } }); // (event is not triggered in some browsers) $(window).on('orientationchange', function(e) { if (e.orientation) { if (e.orientation == 'portrait') { $('html').removeClass('orientation-landscape').addClass('orientation-portrait'); } else if (e.orientation == 'landscape') { $('html').removeClass('orientation-portrait').addClass('orientation-landscape'); } } }).trigger('orientationchange'); // END TRICK
- 本地存储android和phonegap
- 用于jquery移动和phonegap的大型数据库
- 使用Phonegap应用程序执行ajax请求时出现问题
- PhoneGap Cordova 3.1.0 inAppBrowser EventListener无法正常工作
- 如何在jquery-mobile / phonegap的$(document).ready()/ onDeviceReady()上加载脚本
- 使用phonegap提交数据和图像提交表单
- 如何使用phonegap在android中调用asp.net webservice
- 在phonegap App中显示pdf
- 寻找一种方法来动态添加更多列表到jQuery Mobile listview的底部