rem(根据判断手机屏幕大小自动调整rem值的js代码)

//可以直接引用这个js文件

!function(win) {
 function resize() {
  var domWidth = domEle.getBoundingClientRect().width;
  if(domWidth / v > 540){
   domWidth = 540 * v;
  }
  win.rem = domWidth / 16;
  domEle.style.fontSize = win.rem + "px";
 }
 var v, initial_scale, timeCode, dom = win.document, domEle = dom.documentElement, viewport = dom.querySelector(‘meta[name="viewport"]‘), flexible = dom.querySelector(‘meta[name="flexible"]‘);
 if (viewport) {
  //viewport:<meta name="viewport"content="initial-scale=0.5, minimum-scale=0.5, maximum-scale=0.5,user-scalable=no,minimal-ui"/>
  var o = viewport.getAttribute("content").match(/initial\-scale=(["‘]?)([\d\.]+)\1?/);
  if(o){
   initial_scale = parseFloat(o[2]);
   v = parseInt(1 / initial_scale);
  }
 } else {
  if (flexible) {
   var o = flexible.getAttribute("content").match(/initial\-dpr=(["‘]?)([\d\.]+)\1?/);
   if(o){
    v = parseFloat(o[2]);
    initial_scale = parseFloat((1 / v).toFixed(2))
   }
  }
 }
 if (!v && !initial_scale) {
  var n = (win.navigator.appVersion.match(/android/gi), win.navigator.appVersion.match(/iphone/gi));
  v = win.devicePixelRatio;
  v = n ? v >= 3 ? 3 : v >= 2 ? 2 : 1 : 1, initial_scale = 1 / v
 }
 //没有viewport标签的情况下
 if (domEle.setAttribute("data-dpr", v), !viewport) {
  if (viewport = dom.createElement("meta"), viewport.setAttribute("name", "viewport"), viewport.setAttribute("content", "initial-scale=" + initial_scale + ", maximum-scale=" + initial_scale + ", minimum-scale=" + initial_scale + ", user-scalable=no"), domEle.firstElementChild) {
   domEle.firstElementChild.appendChild(viewport)
  } else {
   var m = dom.createElement("div");
   m.appendChild(viewport), dom.write(m.innerHTML)
  }
 }
 win.dpr = v;
 win.addEventListener("resize", function() {
  clearTimeout(timeCode), timeCode = setTimeout(resize, 300)
 }, false);
 win.addEventListener("pageshow", function(b) {
  b.persisted && (clearTimeout(timeCode), timeCode = setTimeout(resize, 300))
 }, false);
 /* 个人觉得没必要完成后就把body的字体设置为12
 "complete" === dom.readyState ? dom.body.style.fontSize = 12 * v + "px" : dom.addEventListener("DOMContentLoaded", function() {
  //dom.body.style.fontSize = 12 * v + "px"
 }, false);
 */
 resize();
}(window);

时间: 2024-10-11 11:51:58

rem(根据判断手机屏幕大小自动调整rem值的js代码)的相关文章

百度判断手机终端并自动跳转uaredirect.js代码及使用实例

百度siteapp下的一款跳转的产品,使用起来很方便.你可以用这款JS跳转到手机版,也可以跳转到任何你想跳转的位置. js代码如下: function uaredirect(f) { try { if (document.getElementById("bdmark") != null) { return } var b = false; if (arguments[1]) { var e = window.location.host; var a = window.location.

Android 获得手机屏幕大小

Android在自定义控件时,经常需要获得屏幕的宽高,每次都要写,不妨直接把他封装成工具类,直接拿来用,废话不说,直接上代码 /** * */ package com.example.customview; import android.content.Context; import android.util.DisplayMetrics; import android.view.WindowManager; /** * 获取手机屏幕大小 * @author * */ public class

Qt For Android 如何获取手机屏幕大小

获取方法 首先看一段程序代码: int main(int argc, char *argv[]) { QApplication a(argc, argv); Dialog w; w.show(); return a.exec(); } a为应用程序,w为对话框:我们获取屏幕大小,需要从变量a这里获取: QScreen *iScreen = a.primaryScreen(); QSize rScreenSize = iScreen->size(); 虽然把屏幕大小获得了,但是我们改变UI大小的程

使PC端网页宽度自适应手机屏幕大小

有时候我们会纠结PC页面在手机页面上无法正常显示,超出屏幕,有些内容看不到,现在又了下面的代码,可以做到自适应手机屏幕宽度: 在网页的<head>中增加一个meta标签: <meta name=”viewport” content=”width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes” /> 可以让网页的宽度自动适应手机屏幕的宽度. 其中:wid

手机字体大小 px - rem javascript 换算

(function () { function o() { document.documentElement.style.fontSize = (document.documentElement.clientWidth ) / 31.25 + "px" } var e = null; window.addEventListener("resize", function () { clearTimeout(e), e = setTimeout(o, 100) }, !

背景图片适配手机屏幕大小的设置方法。。。。。。。。。。。。

1 .bg{ 2 width:100%; 3 height:100%; 4 background-image: url(../image/splash.png); 5 background-size: 100% 100%; 6 background-size: cover; 7 position: fixed; ----重点 8 display: block; 9 }

怎么判断手机屏幕是横屏的,还是竖屏的

window.onload = function(){ //横竖屏 function doOnOrientationChange(){ switch(window.orientation){ case 90: transverse(); break; case -90: transverse(); break; default: vertical(); break; } } window.addEventListener("onorientationchange" in window

判断是否安装flash player及当前版本的JS代码

function flashChecker() { var hasFlash = 0; //是否安装了flash var flashVersion = 0; //flash版本 if(document.all) { var swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash'); if(swf) { hasFlash = 1; VSwf = swf.GetVariable("$version"); flashVersion =

了解真实的『REM』手机屏幕适配

rem 作为一个低调的长度单位,由于手机端网页的兴起,在屏幕适配中得到重用.使用 rem 前端开发者可以很方便的在各种屏幕尺寸下,通过等比缩放的方式达到设计图要求的效果. rem 的官方定义『The font size of the root element.』,即以根节点的字体大小作为基准值进行长度计算.一般认为网页中的根节点是 html 元素,所以采用的方式也是通过设置 html 元素的 font-size 来做屏幕适配,但实际情况真有这么简单吗? 首先我们来看看使用 rem 实现手机屏幕适