美文网首页
常用 js 函数

常用 js 函数

作者: Poiey | 来源:发表于2020-04-27 16:33 被阅读0次

这里记录一下使用到常用的js文件以及一些常用到的工具类函数。(陆续更新...)

  • rem布局常用方法
 <script>
      /**
       * 1rem = 100px,基于 1920px 的宽度比例
       * 单位统一保留三位小数(转换成 px 为一位小数),e.g.: width: 0.125rem;(12.5px)
       */
       function setRem() {
        const size = 19.2;
        const html = document.documentElement;
        window.rem = html.getBoundingClientRect().width / size;
        html.style.fontSize = window.rem + "px";
      }
      window.addEventListener("resize", setRem, false);
      setRem();
    </script>
// 动态计算相应的比例值
function jsNum(num) {
  let lenWindow = document.documentElement.clientWidth;
  let iWidth = lenWindow / 1920;
  let fs = num * iWidth;
  return fs;

// 组件通信
export class EvtMsg {
  evts

  constructor () {
    this.evts = {}
  }

  on (event: string, cb) {
    if(!event || typeof cb !== 'function') return
    if(!this.evts[event]) {
      this.evts[event] = []
    }
    this.evts[event].push(cb)
  }

  emit (event, ...arg) {
    if (!event || !this.evts[event]) return
    const cbs = this.evts[event]
    for(let i=0; i<cbs.length; i++) {
      const cb = cbs[i]
      cb.apply(this, arg)
    }
  }

  off (event: string, cb) {
    if (!event || !this.evts[event]) return
    const cbs = this.evts[event]
    const idx = cbs.findIndex(c => c === cb)
    cbs.splice(idx, 1)
    return
  }

  removeAll () {
    this.evts = {}
  }
}

export const eventBus = new EvtMsg()
}

/** 防抖 */
export const debounce = (fn, delay = 500) => {
  let timerId
  return (...rest) => {
    const args = rest
    if (timerId) clearTimeout(timerId)
    timerId = setTimeout(() => {
      fn.apply(this, args)
    }, delay)
  }
}

/** 字符串转json */
export function strToJson (str) {
  let result = str
  try {
    result = new Function('return ' + str)()
  } catch(err) {
  } finally {
    return result
  }
}
/** 节流*/
export function throttle (func: Function, wait?: number, options: any = {}) {
  let timer: any = null
  return function (...args) {
    const context = options.context || this
    if (timer) {
      return
    }
    timer = setTimeout(function () {
      func.apply(context, args)
      clearTimeout(timer)
      timer = null
    }, wait || 1000)
  }
}

相关文章

  • 2018-06-07

    JS 基本常用函数 javascript函数一共可分为五类: •常规函数 •数组函数 •日期函数 •数学函数 •...

  • [JS]常用函数

    字符串是否是包含26个英文字母的短句 英文首字母大写 sleep 睡眠函数 dereplication 数组去重 ...

  • js常用函数

    1.uuid UUIDGenerator 生成 UUID。 使用cryptoAPI 生成 UUID, 符合RFC4...

  • js常用函数

    1.常规函数 js常规函数包含以下9个函数(1)alert函数:一个ok按钮(2)confirm函数:一个ok按钮...

  • JS 常用函数

    split 数组分离splice 删除或拼接slice 切开 1.数组字符串 互转join() 将数组中...

  • 常用js函数

    日期格式化函数 调用示例var time1 = new Date().Format("yyyy-MM-dd"); ...

  • JS常用函数

    1.通过id获取元素 2.日期格式化 3.匀速运动封装 4.阻止冒泡 5.选中内容获取

  • js 常用函数

    获取的ID等于 demo 的值(包含标签) 改变标签的内的值 改变标签的样式 注释 // 单行注释 /**...

  • 常用 js 函数

    这里记录一下使用到常用的js文件以及一些常用到的工具类函数。(陆续更新...) rem布局常用方法

  • js常用函数

    js替换字符串 js热更新对比版本号 深拷贝

网友评论

      本文标题:常用 js 函数

      本文链接:https://www.haomeiwen.com/subject/fvquwhtx.html