自适应reset.js布局 用于手机端页面编写
2015-08-13 10:50
369 查看
以下是reset.js具体内容,把它存为js文件引入html里,它的默认尺寸是iphone4的分辨率也就是320*480,美工制图最好是这个规格,ps量图后像素值(px)除以40转化为rem。比如div宽为40px,除以40为1rem,这个div的宽就写成1rem,具体看美工给你的手机端图片是多大规格的,你可以根据这个做计算,整个网页就是计算,最后做出来的网页不用在考虑适配,因为它会自动缩放适配任何手机,比起百分比做出的网站兼容性要好得多,而且能实现动功能也能强大的许多.(手机网页都会写meta标签,这个不要漏)
! function(x) {
function w() {
var a = r.getBoundingClientRect().width;
a / v > 1024 && (a = 1024 * v), x.rem = a / 16, r.style.fontSize = x.rem + "px"
}
var v, u, t, s = x.document,
r = s.documentElement,
q = s.querySelector('meta[name="viewport"]'),
p = s.querySelector('meta[name="flexible"]');
if (q) {
console.warn("将根据已有的meta标签来设置缩放比例");
var o = q.getAttribute("content").match(/initial\-scale=(["']?)([\d\.]+)\1?/);
o && (u = parseFloat(o[2]), v = parseInt(1 / u))
} else {
if (p) {
var o = p.getAttribute("content").match(/initial\-dpr=(["']?)([\d\.]+)\1?/);
o && (v = parseFloat(o[2]), u = parseFloat((1 / v).toFixed(2)))
}
}
if (!v && !u) {
var n = (x.navigator.appVersion.match(/android/gi), x.navigator.appVersion.match(/iphone/gi)),
v = x.devicePixelRatio;
v = n ? v >= 3 ? 3 : v >= 2 ? 2 : 1 : 1, u = 1 / v
}
if (r.setAttribute("data-dpr", v), !q) {
if (q = s.createElement("meta"), q.setAttribute("name", "viewport"), q.setAttribute("content", "initial-scale=" + u + ", maximum-scale=" + u + ", minimum-scale=" + u + ", user-scalable=no"), r.firstElementChild) {
r.firstElementChild.appendChild(q)
} else {
var m = s.createElement("div");
m.appendChild(q), s.write(m.innerHTML)
}
}
x.dpr = v, x.addEventListener("resize", function() {
clearTimeout(t), t = setTimeout(w, 300)
}, !1), x.addEventListener("pageshow", function(b) {
b.persisted && (clearTimeout(t), t = setTimeout(w, 300))
}, !1), "complete" === s.readyState ? s.body.style.fontSize = 12 * v + "px" : s.addEventListener("DOMContentLoaded", function() {
s.body.style.fontSize = 12 * v + "px"
}, !1), w()
}(window);
! function(x) {
function w() {
var a = r.getBoundingClientRect().width;
a / v > 1024 && (a = 1024 * v), x.rem = a / 16, r.style.fontSize = x.rem + "px"
}
var v, u, t, s = x.document,
r = s.documentElement,
q = s.querySelector('meta[name="viewport"]'),
p = s.querySelector('meta[name="flexible"]');
if (q) {
console.warn("将根据已有的meta标签来设置缩放比例");
var o = q.getAttribute("content").match(/initial\-scale=(["']?)([\d\.]+)\1?/);
o && (u = parseFloat(o[2]), v = parseInt(1 / u))
} else {
if (p) {
var o = p.getAttribute("content").match(/initial\-dpr=(["']?)([\d\.]+)\1?/);
o && (v = parseFloat(o[2]), u = parseFloat((1 / v).toFixed(2)))
}
}
if (!v && !u) {
var n = (x.navigator.appVersion.match(/android/gi), x.navigator.appVersion.match(/iphone/gi)),
v = x.devicePixelRatio;
v = n ? v >= 3 ? 3 : v >= 2 ? 2 : 1 : 1, u = 1 / v
}
if (r.setAttribute("data-dpr", v), !q) {
if (q = s.createElement("meta"), q.setAttribute("name", "viewport"), q.setAttribute("content", "initial-scale=" + u + ", maximum-scale=" + u + ", minimum-scale=" + u + ", user-scalable=no"), r.firstElementChild) {
r.firstElementChild.appendChild(q)
} else {
var m = s.createElement("div");
m.appendChild(q), s.write(m.innerHTML)
}
}
x.dpr = v, x.addEventListener("resize", function() {
clearTimeout(t), t = setTimeout(w, 300)
}, !1), x.addEventListener("pageshow", function(b) {
b.persisted && (clearTimeout(t), t = setTimeout(w, 300))
}, !1), "complete" === s.readyState ? s.body.style.fontSize = 12 * v + "px" : s.addEventListener("DOMContentLoaded", function() {
s.body.style.fontSize = 12 * v + "px"
}, !1), w()
}(window);
相关文章推荐
- 在unity的scene中画五角星
- 在unity的scene中画五角星
- Android eclipse 提示java代码 快捷键
- 使用 adb logcat 显示 Android 日志
- (转)Android和JavaScript互相调用
- Android 屏幕适配方案
- ios-代理模式 协议小结
- Android 下拉列表框(spinner)
- Android中 在开启的多个Activity中关闭特定的Activity的方法
- 修改Android studio背景主题
- 瓦片地图 cocos
- 【Android】监听viewpager子页面里面的Button按钮
- Unity3D之协程(Coroutines & Yield )
- iOS 开发 插件
- Hdu oj 1017 A Mathematical Curiosity
- Unity3D系列1 : foreach对于性能到底有没有影响
- swift -基本数据类型的定义与使用
- Unity3D之协程(Coroutines & Yield )
- Android开发必知 九种对话框的实现方法
- 浅谈手机app测试注意点