Detecting if a device is able to change orientation in JavaScript

怎甘沉沦 提交于 2019-11-26 16:38:08

问题


Is there a native JavaScript (or through the use of a library such as JQuery/Modernizr etc) way to detect if a device is capable of changing orientation? I would like to use that as a method to differentiate between desktop and mobile.

Thanks,

Shadi


回答1:


Detecting mobile devices:

  1. Simple browser sniffing

    if (/mobile/i.test(navigator.userAgent)) {...}
    
  2. jQuery.browser.mobile plug-in (exhaustive browser sniffing)

  3. Simple test for touch events

    if ('ontouchstart' in window) {...}
    
  4. Advanced test for touch events:

    if (('ontouchstart' in window) ||     // Advanced test for touch events
       (window.DocumentTouch && document instanceof DocumentTouch) ||
       ((hash['touch'] && hash['touch'].offsetTop) === 9)) {...}
    

Optionally use onorientationchange for #3 and #4 above.

Combine 1 or more of these (and any other approaches) as needed. None of them are foolproof.



来源:https://stackoverflow.com/questions/13803838/detecting-if-a-device-is-able-to-change-orientation-in-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!