:
类似百度的自适应跳转,但是将font-size限制在40px之内。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| (function(doc,win){ var docEl = doc.documentElement, recalc = function(){ var clientWidth = docEl.clientWidth; if(!clientWidth){return} var w = 20 * (clientWidth / 320) if(w > 40){ w = 40 } docEl.style.fontSize = w + "px" } if(!doc.addEventListener){return} if("orientationchange" in window){ win.addEventListener("orientationchange",recalc,false) } win.addEventListener("resize",recalc,false) win.addEventListener("load",recalc,false) doc.addEventListener("DOMContentLoaded",recalc,false) recalc() })(document,window)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| font-size:20px
4.5rem = 90px
.kz_dflex{ display: -webkit-flex; display: -ms-flexbox; display: -webkit-box; display: -moz-box; display: flex; }
.kz_flex{ -webkit-box-flex: 1; -moz-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; flex: 1; }
|
1 2 3 4 5 6 7 8 9 10 11 12
| (function(doc,win){ var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', recalc = function(){ var clientWidth = docEl.clientWidth if(!clientWidth) return docEl.style.fontSize = 20 * (clientWidth / 320) + 'px' } if(!doc.addEventListener) return win.addEventListener(resizeEvt,recalc,false) doc.addEventListener('DOMContentLoaded',recalc,false) })(document,window)
|
网上一个朋友公司的自适应效果,font-size效果太局限了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| $(function() { $(window).resize(infinite); function infinite() { var htmlWidth = $('html').width(); if (htmlWidth >= 1080) { $("html").css({ "font-size" : "42px" }); } else { $("html").css({ "font-size" : 42 / 1080 * htmlWidth + "px" }); } } infinite(); });
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| console.time("test");
!function(win, option) { var count = 0, designWidth = option.designWidth, designHeight = option.designHeight || 0, designFontSize = option.designFontSize || 20, callback = option.callback || null, root = document.documentElement, body = document.body, rootWidth, newSize, t, self; root.style.width = 100 + "%"; function _getNewFontSize() { var scale = designHeight !== 0 ? Math.min(win.innerWidth / designWidth, win.innerHeight / designHeight) : win.innerWidth / designWidth; return parseInt( scale * 10000 * designFontSize ) / 10000; } !function () { rootWidth = root.getBoundingClientRect().width; self = self ? self : arguments.callee; if( rootWidth !== win.innerWidth && count < 20 ) { win.setTimeout(function () { count++; self(); }, 0); } else { newSize = _getNewFontSize(); if( newSize + 'px' !== getComputedStyle(root)['font-size'] ) { root.style.fontSize = newSize + "px"; return callback && callback(newSize); }; }; }(); win.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", function() { clearTimeout(t); t = setTimeout(function () { self(); }, 300); }, false); }(window, { designWidth: 640, designHeight: 1136, designFontSize: 20, callback: function (argument) { console.timeEnd("test") } });
|