api.js

作為工具倉庫乐导,持續(xù)更新ing

判斷是否是數(shù)組:
function isArrayFn(arr){
    if(typeof Array.isArray === 'function'){
        return Array.isArray(arr);
    }else{
        return Object.prototype.toString.call(arr) === '[object Array]';
    }
}
跨瀏覽器事件處理:
/*
*
* 元素 事件 操作
* element 元素路狮; type 事件類型; handler 處理函數(shù)   
*
*/
var EventUtil = {
    addHandler:function(element,type,handler){
        if(element.addEventListener){
            element.addEventListener(type,handler,false);
        }else if(element.attachEvent){
            element.attachEvent("on"+type,handler);
        }else{
            element['on'+type] = handler;
        }
    },
    removeHandler:function(element,type,handler){
        if(element.removeEventListener){
            element.removeEventListener(type,handler,false);
        }else if(element.detachEvent){
            element.detachEvent('on'+type,handler);
        }else{
            element['on'+type] = null;
        }
    }
}
/*
* 獲取事件
*/
getEvent:function(event){
    return event ? event : window.event;
},
/*
* 獲取觸發(fā)事件的目標(biāo)元素
*/
getTarget:function(event){
    return event.target || event.srcElement;
}
/*
* 取消默認事件
*/
preventDefault:function(event){
    if(event.preventDefault){
        event.preventDefault();
    }else{
        event.returnValue = false;
    }
}
/*
* 阻止事件冒泡
*/
stopPropagation:function(event){
    if(event.stopPropagation){
        event.stopPropagation();
    }else{
        event.cancelBubble = true;
    }
}
獲取鼠標(biāo)在頁面中坐標(biāo)
EventUti.addHandler(element,"click",function(event){
    event = EventUtil.getEvent(event);
    var pageX = event.pageX;
    var pageY = event.pageY;
    if(pageX === undefined){
        pageX = event.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft);
    }
    if(pageY === undefined){
        pageY = event.clientY + (document.body.scrollTop || document.documentElement.scrollLeft);
    }
    return {
        pageX,
        pageY
    }
})
元素距離文檔頂部距離
function getTop(el) { let top = el.offsetTop; let currentParent = el.offsetParent; while (currentParent != null) { top += currentParent.offsetTop; currentParent = currentParent.offsetParent; } return top; }
輸入框正整數(shù)
            var znInput = false;
            $(".layout-content").on("compositionstart",".input-num",function(){
                znInput = true;
            });
            $(".layout-content").on("compositionend",".input-num",function(){
                znInput = false;
                giftNum = $(this).val().replace(/[^0-9]/g,"");
                $(this).val(giftNum);
                $(".user-money-num").html(giftNum*unitPrice);
            });
            $(".layout-content").on("input",".input-num",function(){
                if(znInput) return;
                giftNum = $(this).val().replace(/[^0-9]/g,"");
                $(this).val(giftNum);
                $(".user-money-num").html(giftNum*unitPrice);
            });
獲取客戶端平臺
var os = function() {  
     var ua = navigator.userAgent,  
     isWindowsPhone = /(?:Windows Phone)/.test(ua),  
     isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone,   
     isAndroid = /(?:Android)/.test(ua),   
     isFireFox = /(?:Firefox)/.test(ua),   
     isChrome = /(?:Chrome|CriOS)/.test(ua),  
     isTablet = /(?:iPad|PlayBook)/.test(ua) || (isAndroid && !/(?:Mobile)/.test(ua)) || (isFireFox && /(?:Tablet)/.test(ua)),  
     isPhone = /(?:iPhone)/.test(ua) && !isTablet,  
     isPc = !isPhone && !isAndroid && !isSymbian;  
     return {  
          isTablet: isTablet,  
          isPhone: isPhone,  
          isAndroid : isAndroid,  
          isPc : isPc  
     };  
}();  

inherit繼承
/**
 * [inherit 繼承屬性]
 * @param  {[type]} p [description]
 * @return {[type]}   [description]
 */
function inherit(p){
    if(p == null) throw TypeError();
    if(Object.create) return Object.create(p);
    var t = typeof p;
    if(t !== 'object' && t !== 'function') throw TypeError();
    function f(){};
    f.prototype = p;
    return new f();
}
@example:
 MyFoo.prototype = inherit(Root.prototype);
移動端1像素邊框
.border{
    //1px
    &::after{
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        border-radius: 50%;
        transform-origin: 0 0;
        -webkit-transform-origin: 0 0;
        border: 1px solid #aaa;
    }
}
@media only screen and (-webkit-min-device-pixel-ratio: 2){
    .border::after{
        width: 200%;
        height: 200%;
        transform: scale(0.5);
        -webkit-transform: scale(0.5);
    }
}
@media only screen and (-webkit-min-device-pixel-ratio: 3){
    .border::after{
        width: 300%;
        height: 300%;
        transform: scale(0.33);
        -webkit-transform: scale(0.33);
    }
}
計算時間
function culTime (mil) {
    if(mil<=0){
        activityEnd = true;
        clearInterval(timeST);
        return $('.recharge-loadtime').html('00天00時00分00秒');
    }

    var d = ~~(mil/(1000*60*60*24));
    var h = ~~((mil-d*24*60*60*1000)/(1000*60*60));
    var i = ~~((mil-d*24*60*60*1000-h*60*60*1000)/(1000*60));
    var s = ~~((mil%(60*1000))/1000);
    d = d < 10? '0'+d : d;
    h = h < 10? '0'+h : h;
    i = i < 10? '0'+i : i;
    s = s < 10? '0'+s : s;
    $('.recharge-loadtime').html(d+'天'+h+'時'+i+'分'+s+'秒');
}
判斷是否支持CSS3
function supportCss3(style) {
    var prefix = ['webkit', 'Moz', 'ms', 'o'],
        i,
        humpString = [],
        htmlStyle = document.documentElement.style,
        _toHumb = function (string) {
            return string.replace(/-(\w)/g, function ($0, $1) {
                return $1.toUpperCase();
            });
        };

    for (i in prefix)
        humpString.push(_toHumb(prefix[i] + '-' + style));

    humpString.push(_toHumb(style));

    for (i in humpString)
        if (humpString[i] in htmlStyle) return true;

    return false;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末趋艘,一起剝皮案震驚了整個濱河市娇澎,隨后出現(xiàn)的幾起案子笨蚁,更是在濱河造成了極大的恐慌,老刑警劉巖九火,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赚窃,死亡現(xiàn)場離奇詭異,居然都是意外死亡岔激,警方通過查閱死者的電腦和手機勒极,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來虑鼎,“玉大人辱匿,你說我怎么就攤上這事§挪剩” “怎么了匾七?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長江兢。 經(jīng)常有香客問我昨忆,道長,這世上最難降的妖魔是什么杉允? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任邑贴,我火速辦了婚禮席里,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拢驾。我一直安慰自己奖磁,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布繁疤。 她就那樣靜靜地躺著咖为,像睡著了一般。 火紅的嫁衣襯著肌膚如雪稠腊。 梳的紋絲不亂的頭發(fā)上躁染,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天,我揣著相機與錄音麻养,去河邊找鬼褐啡。 笑死,一個胖子當(dāng)著我的面吹牛鳖昌,可吹牛的內(nèi)容都是我干的备畦。 我是一名探鬼主播,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼许昨,長吁一口氣:“原來是場噩夢啊……” “哼懂盐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起糕档,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤莉恼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后速那,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體俐银,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年端仰,在試婚紗的時候發(fā)現(xiàn)自己被綠了捶惜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡荔烧,死狀恐怖吱七,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鹤竭,我是刑警寧澤踊餐,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站臀稚,受9級特大地震影響吝岭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一苍碟、第九天 我趴在偏房一處隱蔽的房頂上張望酒觅。 院中可真熱鬧撮执,春花似錦微峰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谋币,卻和暖如春仗扬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蕾额。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工早芭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人诅蝶。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓退个,卻偏偏與公主長得像,于是被迫代替她去往敵國和親调炬。 傳聞我的和親對象是個殘疾皇子语盈,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,336評論 25 707
  • 原文地址:→傳送門 寫在前面 之前學(xué)習(xí)了CSS animation/setTimeout/setInterval/...
    樓心漫閱讀 1,161評論 0 4
  • 綠色的樹和坐在窗前的你 2016年9月2日周五 8:05 昨天發(fā)生了很多事,好的壞的缰泡,都存在著刀荒,交織著,但是不要...
    金華火腿王閱讀 201評論 0 0
  • 不知不覺棘钞,自我精進計劃已執(zhí)行了半月有余缠借,這半月里看完了一本書,聽了三場的演講宜猜,時間真的會在不知不覺中流逝泼返,如果沒有...
    heyelushui520閱讀 190評論 1 0