欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

JavaScript

當(dāng)前位置:主頁 > 網(wǎng)絡(luò)編程 > JavaScript >

JavaScript工具庫MyTools詳解

來源:本站原創(chuàng)|時間:2020-01-10|欄目:JavaScript|點擊: 次

本文實例為大家分享了JavaScript工具庫MyTools,供大家參考,具體內(nèi)容如下

MyTools.js

將功能綁定在window中,調(diào)用的時候,直接使用myToos.xxx就可以進(jìn)行函數(shù)調(diào)用。

(function (w) {
  w.myTool = {
    /**
     * 根據(jù)id獲取元素節(jié)點
     * @param {string}id 節(jié)點id
     * @returns {any} id為id的節(jié)點
     */
    $: function (id) {
      return typeof id === 'string' ? document.getElementById(id) : null;
    },

    /**
     * 返回網(wǎng)頁被卷去的高、網(wǎng)頁被卷去的左
     * @returns {{top: *, left: *}} top:被卷去的高 left:被卷去的左
     */
    scroll: function() {
      if(window.pageYOffset !== null){ // 最新的瀏覽器
        return {
          "top": window.pageYOffset,
          "left": window.pageXOffset
        }
      }else if(document.compatMode === 'CSS1Compat'){ // W3C
        return {
          "top": document.documentElement.scrollTop,
          "left": document.documentElement.scrollLeft
        }
      }
      return {
        "top": document.body.scrollTop,
        "left": document.body.scrollLeft
      }
    },

    /**
     * 返回當(dāng)前界面寬度和高度
     * @returns {{width: *, height: *}} width:當(dāng)前界面寬度 height:當(dāng)前界面高度
     */
    client: function() {
      if(window.innerWidth !== null){ // 最新的瀏覽器
        return {
          "width": window.innerWidth,
          "height": window.innerHeight
        }
      }else if(document.compatMode === 'CSS1Compat'){ // W3C
        return {
          "width": document.documentElement.clientWidth,
          "height": document.documentElement.clientHeight
        }
      }
      return {
        "width": document.body.clientWidth,
        "height": document.body.clientHeight
      }
    },

    /**
     * 檢查obj元素是否的類名中是否有cs
     * @param {Element}obj
     * @param {string}cs
     * @returns {boolean} true有 false無
     */
    hasClassName: function (obj, cs) {
      var reg = new RegExp('\\b' + cs + '\\b');
      return reg.test(obj.className);
    },

    /**
     * 為obj添加類名cs
     * @param {Element}obj
     * @param {string}cs
     */
    addClassName: function (obj, cs) {
      if(!this.hasClassName(obj,cs)){
        obj.className += ' ' + cs;
      }
    },

    /**
     * 移除所有 obj的cs類:
     * @param {Element}obj
     * @param {string}cs
     */
    removeClassName: function (obj, cs) {
      var reg = new RegExp('\\b' + cs + '\\b');
      // 刪除class
      obj.className = obj.className.replace(reg, '');
    },

    /**
     * 對設(shè)置和移除obj元素的cs類進(jìn)行切換:
     * @param {Element}obj
     * @param {string}cs
     */
    toggleClassName: function (obj, cs) {
      if(this.hasClassName(obj,cs)){
        // 有, 刪除
        this.removeClassName(obj,cs);
      }else {
        // 沒有,則添加
        this.addClassName(obj,cs);
      }
    },

    /**
     * 控制元素是否顯示
     * @param {Element}ele 元素節(jié)點
     */
    hide: function (ele) {
      ele.style.display = 'none'
    },
    show: function (ele) {
      ele.style.display = 'block'
    },

    /**
     * 獲得某個元素的某個CSS屬性
     * @param {Element}obj
     * @param {string}attr
     * @returns {string}
     */
    getCSSAttr: function (obj, attr) {
      if (obj.currentStyle) { // IE 和 opera
        return obj.currentStyle[attr];
      } else {
        return window.getComputedStyle(obj, null)[attr];
      }
    },

    /**
     * 更改某個元素的某個CSS屬性
     * @param {Element}eleObj
     * @param {string}attr
     * @param {string | number}value
     */
    setCssAttr: function (eleObj, attr, value) {
      eleObj.style[attr] = value;
    },

    /**
     * 緩動動畫函數(shù)
     * @param eleObj 要執(zhí)行緩動動畫的元素對象
     * @param json 以JSON格式傳入需要改的屬性
     * @param fn 回調(diào)函數(shù)
     */
    slowMoving: function (eleObj, json, fn) {
      clearInterval(eleObj.timer);
      var speed = 0, begin = 0, target = 0, flag = false;
      eleObj.timer = setInterval(function () {
        flag = true;
        for(var key in json){
          if (json.hasOwnProperty(key)){
            if (key === 'opacity') {
              begin = parseInt(parseFloat(myTool.getCSSAttr(eleObj, key)) * 100);
              target = parseInt(json[key] * 100);
            } else if ('scrollTop' === key) {
              begin = Math.ceil(Number(eleObj.scrollTop));
              target = parseInt(json[key]);
            } else {
              begin = parseInt(myTool.getCSSAttr(eleObj, key)) || 0;
              target = parseInt(json[key]);
            }
            speed = (target - begin) * 0.2;
            speed = (target > begin) ? Math.ceil(speed) : Math.floor(speed);
            if (key === 'opacity') {
              eleObj.style.opacity = (begin + speed) / 100;
            } else if ('scrollTop' === key) {
              eleObj.scrollTop = begin + speed;
            } else if ("zIndex" === key) {
              eleObj.style[key] = json[key];
            }else {
              eleObj.style[key] = begin + speed + 'px';
            }
            if (begin !== target) {
              flag = false;
            }
          }
        }
        if(flag){
          clearInterval(eleObj.timer);
          fn && fn();
        }
      }, 100);
    },

    /**
     * 傳入總秒數(shù)返回對應(yīng)小時、分鐘以及秒數(shù)
     * @param second 總秒數(shù)
     * @returns {{min: number , hour: number, second: number}}
     */
    secondToHourMinSecond: function (second) {
      return{
        "hour" : Math.floor(second / (60*60)),
        "min" : Math.floor(second % (60*60) / 60),
        "second" : Math.floor(second %60)
      }
    },

    /**
     * 傳入一個數(shù)字,如果是一位數(shù)字,前面補(bǔ)0.如果是兩位,返回原值。
     * @param {number}num
     * @returns {number}
     */
    addZero: function (num) {
      return num < 10 ? '0' + num : num;
    },

    /**
     * 獲取字符串真實長度,目前僅針對中文和英文字符串
     * @param {string}str
     * @returns {number}
     */
    getStrLength: function (str){
    var len = 0, code = 0;
    for (var i = 0; i < str.length; i++) {
      code = str.charCodeAt(i);
      if (code>=0 && code <= 127){
        len += 1;
      }else{
        len += 2;
      }
    }
    return len;
  }
  };
})(window);

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。

上一篇:file-loader打包圖片文件時路徑錯誤輸出為[object-module]的解決方法

欄    目:JavaScript

下一篇:Vue 實現(xiàn)分頁與輸入框關(guān)鍵字篩選功能

本文標(biāo)題:JavaScript工具庫MyTools詳解

本文地址:http://mengdiqiu.com.cn/a1/JavaScript/9337.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有