成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javascript常用方法函數(shù)收集(二)

X1nFLY / 2298人閱讀

摘要:獲取頁面高度獲取頁面獲取頁面可視寬度獲取頁面寬度獲取頁面獲取頁面可視高度去掉前綴隨機(jī)數(shù)時(shí)間戳全角半角轉(zhuǎn)換全到半,半到全,其他不轉(zhuǎn)化半全全半確認(rèn)是否鍵盤有效輸入值空格和異常數(shù)字字母數(shù)字鍵盤數(shù)字鍵盤符號(hào)符號(hào)獲取網(wǎng)頁被卷去的位置日期格式化函

獲取頁面高度

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;
}

獲取頁面可視寬度

function getPageViewWidth(){
    var d = document, a = d.compatMode == "BackCompat"
                    ? d.body
                    : d.documentElement;
    return a.clientWidth;
}

獲取頁面寬度

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);
}

獲取頁面scrollTop

function getPageScrollTop(){
    var a = document;
    return a.documentElement.scrollTop || a.body.scrollTop;
}

獲取頁面可視高度

function getPageViewHeight() {
    var d = document, a = d.compatMode == "BackCompat"
                    ? d.body
                    : d.documentElement;
    return a.clientHeight;
}

去掉url前綴

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;
}

隨機(jī)數(shù)時(shí)間戳

function uniqueId(){
    var a=Math.random,b=parseInt;
    return Number(new Date()).toString()+b(10*a())+b(10*a())+b(10*a());
}

全角半角轉(zhuǎn)換

//iCase: 0全到半,1半到全,其他不轉(zhuǎn)化
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半*/
        for(i=0; i 65280 && iCode < 65375){
                iCode -= 65248;
            }
                oRs.push(String.fromCharCode(iCode));
         }
    }
    return oRs.join("");
}

確認(rèn)是否鍵盤有效輸入值

function checkKey(iKey){
    if(iKey == 32 || iKey == 229){return true;}/*空格和異常*/
    if(iKey>47 && iKey < 58){return true;}/*數(shù)字*/
    if(iKey>64 && iKey < 91){return true;}/*字母*/
    if(iKey>95 && iKey < 108){return true;}/*數(shù)字鍵盤1*/
    if(iKey>108 && iKey < 112){return true;}/*數(shù)字鍵盤2*/
    if(iKey>185 && iKey < 193){return true;}/*符號(hào)1*/
    if(iKey>218 && iKey < 223){return true;}/*符號(hào)2*/
    return false;
}

獲取網(wǎng)頁被卷去的位置

function getScrollXY() {
    return document.body.scrollTop ? {
        x: document.body.scrollLeft,
        y: document.body.scrollTop
    }: {
        x: document.documentElement.scrollLeft,
        y: document.documentElement.scrollTop
    }
}

日期格式化函數(shù)+調(diào)用方法

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"));

時(shí)間個(gè)性化輸出功能

 /*
    1、< 60s, 顯示為“剛剛”
    2、>= 1min && < 60 min, 顯示與當(dāng)前時(shí)間差“XX分鐘前”
    3、>= 60min && < 1day, 顯示與當(dāng)前時(shí)間差“今天 XX:XX”
    4、>= 1day && < 1year, 顯示日期“XX月XX日 XX:XX”
    5、>= 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兼容性問題

// 針對(duì)火狐不支持offsetX/Y
function getOffset(e){
    var target = e.target, // 當(dāng)前觸發(fā)的目標(biāo)對(duì)象
          eventCoord,
          pageCoord,
          offsetCoord;

    // 計(jì)算當(dāng)前觸發(fā)元素到文檔的距離
    pageCoord = getPageCoord(target);

    // 計(jì)算光標(biāo)到文檔的距離
    eventCoord = {
        X : window.pageXOffset + e.clientX,
        Y : window.pageYOffset + e.clientY
    };

    // 相減獲取光標(biāo)到第一個(gè)定位的父元素的坐標(biāo)
    offsetCoord = {
        X : eventCoord.X - pageCoord.X,
        Y : eventCoord.Y - pageCoord.Y
    };
    return offsetCoord;
}

function getPageCoord(element){
    var coord = { X : 0, Y : 0 };
    // 計(jì)算從當(dāng)前觸發(fā)元素到根節(jié)點(diǎn)為止,
    // 各級(jí) offsetParent 元素的 offsetLeft 或 offsetTop 值之和
    while (element){
        coord.X += element.offsetLeft;
        coord.Y += element.offsetTop;
        element = element.offsetParent;
    }
    return coord;
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/80430.html

相關(guān)文章

  • 前端文檔收集

    摘要:系列種優(yōu)化頁面加載速度的方法隨筆分類中個(gè)最重要的技術(shù)點(diǎn)常用整理網(wǎng)頁性能管理詳解離線緩存簡(jiǎn)介系列編寫高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問性能優(yōu)化方案實(shí)現(xiàn)的大排序算法一怪對(duì)象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁面加載速度的方法 隨筆分類 - HTML5 HTML5中40個(gè)最重要的技術(shù)點(diǎn) 常用meta整理 網(wǎng)頁性能管理詳解 HTML5 ...

    jsbintask 評(píng)論0 收藏0
  • 前端文檔收集

    摘要:系列種優(yōu)化頁面加載速度的方法隨筆分類中個(gè)最重要的技術(shù)點(diǎn)常用整理網(wǎng)頁性能管理詳解離線緩存簡(jiǎn)介系列編寫高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問性能優(yōu)化方案實(shí)現(xiàn)的大排序算法一怪對(duì)象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁面加載速度的方法 隨筆分類 - HTML5 HTML5中40個(gè)最重要的技術(shù)點(diǎn) 常用meta整理 網(wǎng)頁性能管理詳解 HTML5 ...

    muddyway 評(píng)論0 收藏0
  • javascript垃圾收集知識(shí)點(diǎn)概要()

    摘要:標(biāo)記清除中最常用的垃圾收集方式是標(biāo)記清除。最后,垃圾收集器完成內(nèi)存清除工作,銷毀那些帶標(biāo)記的值并回收他們所占用的內(nèi)存空間。到年為止,和的實(shí)現(xiàn)使用的都是標(biāo)記清除式的垃圾收集策略或類似的策略,只不過垃圾收集的時(shí)間間隔互有不同。 標(biāo)記清除 Javascript中最常用的垃圾收集方式是標(biāo)記清除(mark-and-sweep)。當(dāng)變量進(jìn)入環(huán)境(例如,在函數(shù)中聲明一個(gè)變量)時(shí),就將這個(gè)變量...

    TesterHome 評(píng)論0 收藏0
  • javascript常用方法函數(shù)收集(一)

    摘要:字符串長(zhǎng)度截取,替換全部清除空格清除左空格右空格判斷是否以某個(gè)字符串開頭判斷是否以某個(gè)字符串結(jié)束轉(zhuǎn)義標(biāo)簽時(shí)間日期格式轉(zhuǎn)換日一二三四五六判斷是否為數(shù)字類型設(shè)置值獲取值加入收藏夾加入收藏失敗,請(qǐng)使用進(jìn)行添加設(shè)為首頁該操作被瀏覽器拒絕,如 字符串長(zhǎng)度截取 function cutstr(str, len) { var temp, icount = 0, ...

    zhisheng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

X1nFLY

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<