You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.3 KiB

1 year ago
  1. (function (doc, win) {
  2. var docEl = doc.documentElement,
  3. isIOS = navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
  4. dpr = isIOS ? Math.min(win.devicePixelRatio, 3) : 1,
  5. dpr = window.top === window.self ? dpr : 1, //被iframe引用时,禁止缩放
  6. dpr = 1,
  7. scale = 1 / dpr,
  8. resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize';
  9. docEl.dataset.dpr = dpr;
  10. var metaEl = doc.createElement('meta');
  11. metaEl.name = 'viewport';
  12. metaEl.content = 'initial-scale=' + scale + ',maximum-scale=' + scale + ', minimum-scale=' + scale;
  13. docEl.firstElementChild.appendChild(metaEl);
  14. var recalc = function () {
  15. var width = docEl.clientWidth;
  16. if (width / dpr > 750) {
  17. width = 750 * dpr;
  18. }
  19. // 乘以100,px : rem = 100 : 1
  20. docEl.style.fontSize = 100 * (width / 750) + 'px';
  21. };
  22. recalc()
  23. if (!doc.addEventListener) return;
  24. win.addEventListener(resizeEvt, recalc, false);
  25. })(document, window);
  26. const isIPhoneX = () => {
  27. let u = navigator.userAgent;
  28. let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
  29. if (isIOS) {
  30. if (screen.height == 812 && screen.width == 375) {
  31. return true;
  32. }
  33. else {
  34. return false;
  35. }
  36. }
  37. }