獲取頁面高度dom
function getPageHeight(){ var g = document, a = g.body, f = g.documentElement, d = g.compatMode == "BackCompat" ? a : g.documentElement; return Math.max(f.scrollHeight, a.scrollHeight, d.clientHeight); }
獲取頁面scrollLeft函數
function getPageScrollLeft(){ var a = document; return a.documentElement.scrollLeft || a.body.scrollLeft; }
獲取頁面可視寬度this
function getPageViewWidth(){ var d = document, a = d.compatMode == "BackCompat" ? d.body : d.documentElement; return a.clientWidth; }
獲取頁面寬度url
function getPageWidth(){ var g = document, a = g.body, f = g.documentElement, d = g.compatMode == "BackCompat" ? a : g.documentElement; return Math.max(f.scrollWidth, a.scrollWidth, d.clientWidth); }
獲取頁面scrollTopprototype
function getPageScrollTop(){ var a = document; return a.documentElement.scrollTop || a.body.scrollTop; }
獲取頁面可視高度code
function getPageViewHeight() { var d = document, a = d.compatMode == "BackCompat" ? d.body : d.documentElement; return a.clientHeight; }
去掉url前綴orm
function removeUrlPrefix(a){ a=a.replace(/:/g,":").replace(/./g,".").replace(///g,"/"); while(trim(a).toLowerCase().indexOf("http://")==0){ a=trim(a.replace(/http:\/\//i,"")); } return a; }
隨機數時間戳對象
function uniqueId(){ var a=Math.random,b=parseInt; return Number(new Date()).toString()+b(10*a())+b(10*a())+b(10*a()); }
全角半角轉換element
//iCase: 0全到半,1半到全,其餘不轉化 function chgCase(sStr,iCase){ if(typeof sStr != "string" || sStr.length <= 0 || !(iCase === 0 || iCase == 1)){ return sStr; } var i,oRs=[],iCode; if(iCase){/*半->全*/ for(i=0; i<sStr.length;i+=1){ iCode = sStr.charCodeAt(i); if(iCode == 32){ iCode = 12288; }else if(iCode < 127){ iCode += 65248; } oRs.push(String.fromCharCode(iCode)); } }else{/*全->半*/ for(i=0; i<sStr.length;i+=1){ iCode = sStr.charCodeAt(i); if(iCode == 12288){ iCode = 32; }else if(iCode > 65280 && iCode < 65375){ iCode -= 65248; } oRs.push(String.fromCharCode(iCode)); } } return oRs.join(""); }
確認是否鍵盤有效輸入值rem
function checkKey(iKey){ if(iKey == 32 || iKey == 229){return true;}/*空格和異常*/ if(iKey>47 && iKey < 58){return true;}/*數字*/ if(iKey>64 && iKey < 91){return true;}/*字母*/ if(iKey>95 && iKey < 108){return true;}/*數字鍵盤1*/ if(iKey>108 && iKey < 112){return true;}/*數字鍵盤2*/ if(iKey>185 && iKey < 193){return true;}/*符號1*/ if(iKey>218 && iKey < 223){return true;}/*符號2*/ return false; }
獲取網頁被捲去的位置
function getScrollXY() { return document.body.scrollTop ? { x: document.body.scrollLeft, y: document.body.scrollTop }: { x: document.documentElement.scrollLeft, y: document.documentElement.scrollTop } }
日期格式化函數+調用方法
Date.prototype.format = function(format){ var o = { "M+" : this.getMonth()+1, //month "d+" : this.getDate(), //day "h+" : this.getHours(), //hour "m+" : this.getMinutes(), //minute "s+" : this.getSeconds(), //second "q+" : Math.floor((this.getMonth()+3)/3), //quarter "S" : this.getMilliseconds() //millisecond }; if(/(y+)/.test(format)) format=format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); for(var k in o){ if(new RegExp("("+ k +")").test(format)) format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] :("00"+ o[k]).substr((""+ o[k]).length)); } return format; } alert(new Date().format("yyyy-MM-dd hh:mm:ss"));
時間個性化輸出功能
/* 一、< 60s, 顯示爲「剛剛」 二、>= 1min && < 60 min, 顯示與當前時間差「XX分鐘前」 三、>= 60min && < 1day, 顯示與當前時間差「今天 XX:XX」 四、>= 1day && < 1year, 顯示日期「XX月XX日 XX:XX」 五、>= 1year, 顯示具體日期「XXXX年XX月XX日 XX:XX」 */ function timeFormat(time){ var date = new Date(time), curDate = new Date(), year = date.getFullYear(), month = date.getMonth() + 10, day = date.getDate(), hour = date.getHours(), minute = date.getMinutes(), curYear = curDate.getFullYear(), curHour = curDate.getHours(), timeStr; if(year < curYear){ timeStr = year +'年'+ month +'月'+ day +'日 '+ hour +':'+ minute; }else{ var pastTime = curDate - date, pastH = pastTime/3600000; if(pastH > curHour){ timeStr = month +'月'+ day +'日 '+ hour +':'+ minute; }else if(pastH >= 1){ timeStr = '今天 ' + hour +':'+ minute +'分'; }else{ var pastM = curDate.getMinutes() - minute; if(pastM > 1){ timeStr = pastM +'分鐘前'; }else{ timeStr = '剛剛'; } } } return timeStr; }
解決offsetX兼容性問題
// 針對火狐不支持offsetX/Y function getOffset(e){ var target = e.target, // 當前觸發的目標對象 eventCoord, pageCoord, offsetCoord; // 計算當前觸發元素到文檔的距離 pageCoord = getPageCoord(target); // 計算光標到文檔的距離 eventCoord = { X : window.pageXOffset + e.clientX, Y : window.pageYOffset + e.clientY }; // 相減獲取光標到第一個定位的父元素的座標 offsetCoord = { X : eventCoord.X - pageCoord.X, Y : eventCoord.Y - pageCoord.Y }; return offsetCoord; } function getPageCoord(element){ var coord = { X : 0, Y : 0 }; // 計算從當前觸發元素到根節點爲止, // 各級 offsetParent 元素的 offsetLeft 或 offsetTop 值之和 while (element){ coord.X += element.offsetLeft; coord.Y += element.offsetTop; element = element.offsetParent; } return coord; }