(function(doc, win) { function hasClass(obj, cls) { return obj.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')); } function removeClass(obj, cls) { if(hasClass(obj, cls)) { var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)'); obj.className = obj.className.replace(reg, ' '); } } function addClass(obj, cls) { if(!hasClass(obj, cls)) obj.className += " " + cls; } function toggleClass(obj, cls) { if(hasClass(obj, cls)) { removeClass(obj, cls); } else { addClass(obj, cls); } } //rem布局 var reCreateStyle = function() { var style; if(style = document.getElementById("forhtml")) { style.parentNode.removeChild(style); } style = document.createElement("style"); style.id = "forhtml"; var head=document.head||document.getElementsByTagName("head")[0]; head.appendChild(style); var fontSize = 100.00 * (parseFloat(document.documentElement.clientWidth, 10)) / 750.00; style.appendChild(document.createTextNode("html{font-size:" + fontSize + "px !important;}")); }; var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', recalc = function() { reCreateStyle(); }, loadcalc = function() { reCreateStyle(); var bodyEl = document.body; if(hasClass(bodyEl, "loading")) { removeClass(bodyEl, "loading"); } } setTimeout(function () { recalc(); }, 50) if(!doc.addEventListener) return; win.addEventListener(resizeEvt, loadcalc, false); doc.addEventListener('DOMContentLoaded', loadcalc, false); })(document, window);