browser.html 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289
  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>jQuery NiceScroll Browser Detection</title>
  6. <style type="text/css">
  7. .testok {
  8. background-color: #71FF71;
  9. }
  10. .testko {
  11. background-color: #FF6C6C;
  12. }
  13. body {
  14. font-family: Verdana, Arial, Helvetica, sans-serif;
  15. font-size: 12px;
  16. }
  17. .divs {
  18. padding-top: 4px;
  19. }
  20. .num {
  21. font-size: 10px;
  22. color: #525252;
  23. vertical-align: super;
  24. }
  25. </style>
  26. <script src="js/jquery.min.js"></script>
  27. <script src="js/jquery.nicescroll.min.js"></script>
  28. <script>
  29. var nice = false;
  30. $(document).ready(function() {
  31. nice = $("html").niceScroll();
  32. });
  33. var obj = window;
  34. console.log(obj.length);
  35. console.log("selector" in obj);
  36. </script>
  37. <script>
  38. function toCell(px,py,ok) {
  39. $("#tab1").find('tr').eq(py).find('td').eq(px).addClass((ok)?'testok':'testko');
  40. };
  41. $(window).load(function() {
  42. $("#div1").html($("#div1").html()+' '+nice.version);
  43. $("#div2").html($("#div2").html()+' '+navigator.userAgent);
  44. toCell(1,1,nice.detected.ismozilla);
  45. toCell(2,1,(nice.detected.iswebkit));
  46. toCell(3,1,nice.detected.isie);
  47. toCell(3,2,nice.detected.isie10);
  48. toCell(3,3,nice.detected.isie9);
  49. toCell(3,4,nice.detected.isie8);
  50. toCell(3,5,nice.detected.isie7);
  51. toCell(3,6,nice.detected.isieold);
  52. toCell(7,1,nice.detected.isie11);
  53. toCell(4,1,nice.detected.isopera);
  54. toCell(4,2,nice.detected.isopera12);
  55. toCell(4,3,nice.detected.isoperamini);
  56. toCell(5,1,nice.detected.isios);
  57. toCell(5,2,nice.detected.isios4);
  58. toCell(6,1,nice.detected.ischrome);
  59. toCell(6,2,nice.detected.ischrome22);
  60. toCell(6,3,nice.detected.ischrome26);
  61. toCell(0,8,nice.detected.cantouch);
  62. toCell(3,8,nice.detected.hasmstouch);
  63. toCell(7,8,nice.detected.hasw3ctouch);
  64. toCell(1,10,nice.detected.hastransform);
  65. toCell(1,11,nice.detected.hastranslate3d);
  66. toCell(2,10,nice.detected.hastransition);
  67. toCell(2,11,!!nice.detected.transitionend);
  68. toCell(3,10,nice.hasanimationframe);
  69. toCell(3,11,nice.hascancelanimationframe);
  70. toCell(4,10,nice.detected.hasMutationObserver);
  71. toCell(1,12,nice.detected.hasmousecapture);
  72. toCell(2,12,((nice.detected.cursorgrabvalue!='')&&(nice.detected.cursorgrabvalue.substr(0,3)!='url')));
  73. toCell(3,12,nice.detected.haspointerlock);
  74. toCell(1,14,!nice.detected.cantouch);
  75. toCell(2,14,!nice.detected.cantouch);
  76. toCell(3,14,nice.detected.cantouch||nice.istouchcapable||nice.hasmstouch||nice.detected.hasw3ctouch);
  77. toCell(4,14,nice.detected.isie9mobile);
  78. });
  79. </script>
  80. </head>
  81. <body>
  82. <p>CHECK YOU BROWSER PAGE</p>
  83. <div id="div1">NiceScroll version:</div>
  84. <div id="div2">You browser user agent:</div>
  85. <table border="0" cellpadding="6" cellspacing="2" id="tab1">
  86. <tr>
  87. <td>&nbsp;</td>
  88. <td>&nbsp;</td>
  89. <td>&nbsp;</td>
  90. <td>&nbsp;</td>
  91. <td>&nbsp;</td>
  92. <td>&nbsp;</td>
  93. <td>&nbsp;</td>
  94. </tr>
  95. <tr>
  96. <td bgcolor="#E0E0E9">Browser class</td>
  97. <td bgcolor="#E0E0E9">Mozilla</td>
  98. <td bgcolor="#E0E0E9">WebKit</td>
  99. <td bgcolor="#E0E0E9">IE</td>
  100. <td bgcolor="#E0E0E9">Opera</td>
  101. <td bgcolor="#E0E0E9">iOS <span class="num">(7)</span></td>
  102. <td bgcolor="#E0E0E9">Chrome</td>
  103. <td bgcolor="#E0E0E9">IE11+</td>
  104. </tr>
  105. <tr>
  106. <td bgcolor="#E0E0E9">Families</td>
  107. <td bgcolor="#E0E0E9">&nbsp;</td>
  108. <td bgcolor="#E0E0E9">&nbsp;</td>
  109. <td bgcolor="#E0E0E9">IE10+</td>
  110. <td bgcolor="#E0E0E9">Opera&nbsp;12</td>
  111. <td bgcolor="#E0E0E9">iOS4- <span class="num">(6)</span></td>
  112. <td bgcolor="#E0E0E9">Chrome 22+</td>
  113. <td bgcolor="#E0E0E9">&nbsp;</td>
  114. </tr>
  115. <tr>
  116. <td bgcolor="#E0E0E9">&nbsp;</td>
  117. <td bgcolor="#E0E0E9">&nbsp;</td>
  118. <td bgcolor="#E0E0E9">&nbsp;</td>
  119. <td bgcolor="#E0E0E9">IE9+</td>
  120. <td bgcolor="#E0E0E9">Opera&nbsp;Mini</td>
  121. <td bgcolor="#E0E0E9">&nbsp;</td>
  122. <td bgcolor="#E0E0E9">Chrome 26+</td>
  123. <td bgcolor="#E0E0E9">&nbsp;</td>
  124. </tr>
  125. <tr>
  126. <td bgcolor="#E0E0E9">&nbsp;</td>
  127. <td bgcolor="#E0E0E9">&nbsp;</td>
  128. <td bgcolor="#E0E0E9">&nbsp;</td>
  129. <td bgcolor="#E0E0E9">IE8</td>
  130. <td bgcolor="#E0E0E9">&nbsp;</td>
  131. <td bgcolor="#E0E0E9">&nbsp;</td>
  132. <td bgcolor="#E0E0E9">&nbsp;</td>
  133. <td bgcolor="#E0E0E9">&nbsp;</td>
  134. </tr>
  135. <tr>
  136. <td bgcolor="#E0E0E9">&nbsp;</td>
  137. <td bgcolor="#E0E0E9">&nbsp;</td>
  138. <td bgcolor="#E0E0E9">&nbsp;</td>
  139. <td bgcolor="#E0E0E9">IE7</td>
  140. <td bgcolor="#E0E0E9">&nbsp;</td>
  141. <td bgcolor="#E0E0E9">&nbsp;</td>
  142. <td bgcolor="#E0E0E9">&nbsp;</td>
  143. <td bgcolor="#E0E0E9">&nbsp;</td>
  144. </tr>
  145. <tr>
  146. <td bgcolor="#E0E0E9">&nbsp;</td>
  147. <td bgcolor="#E0E0E9">&nbsp;</td>
  148. <td bgcolor="#E0E0E9">&nbsp;</td>
  149. <td bgcolor="#E0E0E9">IE6- <span class="num">(1)</span></td>
  150. <td bgcolor="#E0E0E9">&nbsp;</td>
  151. <td bgcolor="#E0E0E9">&nbsp;</td>
  152. <td bgcolor="#E0E0E9">&nbsp;</td>
  153. <td bgcolor="#E0E0E9">&nbsp;</td>
  154. </tr>
  155. <tr>
  156. <td>&nbsp;</td>
  157. <td>&nbsp;</td>
  158. <td>&nbsp;</td>
  159. <td>&nbsp;</td>
  160. <td>&nbsp;</td>
  161. <td>&nbsp;</td>
  162. <td>&nbsp;</td>
  163. <td>&nbsp;</td>
  164. </tr>
  165. <tr bgcolor="#E0E0E9">
  166. <td>Touch</td>
  167. <td>&nbsp;</td>
  168. <td>&nbsp;</td>
  169. <td>MSPointer</td>
  170. <td>&nbsp;</td>
  171. <td>&nbsp;</td>
  172. <td>&nbsp;</td>
  173. <td>Pointer (W3C)</td>
  174. </tr>
  175. <tr>
  176. <td>&nbsp;</td>
  177. <td>&nbsp;</td>
  178. <td>&nbsp;</td>
  179. <td>&nbsp;</td>
  180. <td>&nbsp;</td>
  181. <td>&nbsp;</td>
  182. <td>&nbsp;</td>
  183. <td>&nbsp;</td>
  184. </tr>
  185. <tr>
  186. <td bgcolor="#E0E0E9">Browser capabilities</td>
  187. <td bgcolor="#E0E0E9">Transform <span class="num">(2)</span></td>
  188. <td bgcolor="#E0E0E9">Transition <span class="num">(4)</span></td>
  189. <td bgcolor="#E0E0E9">AnimationFrame <span class="num">(5)</span></td>
  190. <td bgcolor="#E0E0E9">MutationObserver</td>
  191. <td bgcolor="#E0E0E9">&nbsp;</td>
  192. <td bgcolor="#E0E0E9">&nbsp;</td>
  193. <td bgcolor="#E0E0E9">&nbsp;</td>
  194. </tr>
  195. <tr>
  196. <td bgcolor="#E0E0E9">&nbsp;</td>
  197. <td bgcolor="#E0E0E9">translate3d <span class="num">(3)</span></td>
  198. <td bgcolor="#E0E0E9">transitionEnd</td>
  199. <td bgcolor="#E0E0E9">cancelAnimationFrame</td>
  200. <td bgcolor="#E0E0E9">&nbsp;</td>
  201. <td bgcolor="#E0E0E9">&nbsp;</td>
  202. <td bgcolor="#E0E0E9">&nbsp;</td>
  203. <td bgcolor="#E0E0E9">&nbsp;</td>
  204. </tr>
  205. <tr>
  206. <td bgcolor="#E0E0E9">&nbsp;</td>
  207. <td bgcolor="#E0E0E9">setCapture</td>
  208. <td bgcolor="#E0E0E9">cursor:grab</td>
  209. <td bgcolor="#E0E0E9">Pointer Lock API</td>
  210. <td bgcolor="#E0E0E9">&nbsp;</td>
  211. <td bgcolor="#E0E0E9">&nbsp;</td>
  212. <td bgcolor="#E0E0E9">&nbsp;</td>
  213. <td bgcolor="#E0E0E9">&nbsp;</td>
  214. </tr>
  215. <tr>
  216. <td>&nbsp;</td>
  217. <td>&nbsp;</td>
  218. <td>&nbsp;</td>
  219. <td>&nbsp;</td>
  220. <td>&nbsp;</td>
  221. <td>&nbsp;</td>
  222. <td>&nbsp;</td>
  223. <td>&nbsp;</td>
  224. </tr>
  225. <tr bgcolor="#E0E0E9">
  226. <td>Input</td>
  227. <td>Keyboard</td>
  228. <td>Mouse</td>
  229. <td>Touch/Pen</td>
  230. <td>WP7.1(8)</td>
  231. <td>&nbsp;</td>
  232. <td>&nbsp;</td>
  233. <td>&nbsp;</td>
  234. </tr>
  235. </table>
  236. <p>&nbsp; </p>
  237. <p>(1) position:fixed not supported, scrollbar for page and zoom features disabled<br />
  238. (2) hardware scroll for wrapped div<br />
  239. (3) hardware scroll preferable for mobile devices<br />
  240. (4) transition (animation) used for scroll content (hw full implementation)<br />
  241. (5) more smooth native scroll and cpu saving<br />
  242. (6) some problem with zoom feature for browser limitation<br />
  243. (7) use native scrollbar for page<br />
  244. (8) simulated touch support for WP7.1 Mango</p>
  245. <p>&nbsp; </p>
  246. <script type="text/javascript">
  247. var _gaq = _gaq || [];
  248. _gaq.push(['_setAccount', 'UA-26840957-1']);
  249. _gaq.push(['_setDomainName', '.areaaperta.com']);
  250. _gaq.push(['_trackPageview']);
  251. (function() {
  252. var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  253. ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  254. var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  255. })();
  256. </script>
  257. </body>
  258. </html>