# ssutils

前端业务代码工具库

> 目的：高效完成前端业务代码

业务开发过程中，会经常用到`日期格式化`、`url参数转对象`、`浏览器类型判断`等常用函数，为避免不同项目多次复制粘贴的麻烦，这里统一封装，并发布到npm，以提高开发效率。

## 安装使用

1. 直接下载`dist`目录下的[ssutils.min.js](https://github.com/tonyssc/ssutils/master/dist/ssutils.min.js)
2. 使用yarn或者npm安装

### 浏览器
```html
    <script src="ssutils.min.js"></script>
    <script>
        var browser = ssutils.browser()
    </script>
```

### yarn or npm
```bash
$ yarn add --dev @ssports_fe/ssutils
$ npm install --save-dev @ssports_fe/ssutils
```

webpack、RequireJS、SeaJS等

``` javascript
// 完整引入
const ssutils = require('@ssports_fe/ssutils')
const browser = ssutils.browser()
or
import ssutils from '@ssports_fe/ssutils';
```

**推荐使用方法**  

引入需要使用的方法
``` javascript
// 只引入部分方法('@ssports_fe/ssutils/<方法名>')
const browser = require('@ssports_fe/ssutils/browser')
```

## API文档

### Array
#### [array][array]&emsp;数组相关操作
* arrayEqual&emsp;判断两个数组是否相等 
* isArrayLike&emsp;判断是否为类数组

### browser
#### [browser][browser]&emsp;浏览器相关判断
* getBrowser&emsp;返回对应浏览器型号 
* getExplore&emsp;获取浏览器类型和版本
* getOS&emsp;获取操作系统类型
* browserRedirect&emsp;跳转对应的移动端项目
* isSupportWebP&emsp;判断浏览器是否支持webP格式图片

### calc
#### [calc][calc]&emsp;数学计算相关操作
* strip&emsp;把错误的数据转正 
* digitLength&emsp;返回Number类型数字的长度
* times&emsp;精确乘法
* plus&emsp;精确加法
* minus&emsp;精确减法
* divide&emsp;精确除法
* round&emsp;四舍五入

### cookie
#### [cookie][cookie]&emsp;Cookie相关操作
* get&emsp;获取cookie
* set&emsp;设置cookie
* remove&emsp;删除cookie

### dom
#### [dom][dom]&emsp;Dom相关操作
* setPageTitle&emsp;设置页面标题（title）
* getScrollTop&emsp;获取滚动条距顶部的距离
* setScrollTop&emsp;设置滚动条距顶部的距离
* offset&emsp;获取一个元素的距离文档(document)的位置，类似jQ中的offset()
* windowResize&emsp;H5软键盘缩回、弹起回调
* scrollTo&emsp;在${duration}时间内，滚动条平滑滚动到${to}指定位置
* hasClass&emsp;dom节点是否包含某个类
* addClass&emsp;给dom节点增加类
* removeClass&emsp;给dom节点移除类
* getStyle&emsp;获取dom节点的style
* on&emsp;绑定事件
* off&emsp;移除事件

### function
#### [function][function]&emsp;基础工具函数
* throttle&emsp;函数节流
* debounce&emsp;函数防抖
* typeOf&emsp;获取对象类型

### iframe
#### [iframe][iframe]&emsp;iframe相关操作
* setParentTitle&emsp;设置iframe的title
* reloadIframeUrl&emsp;iframe父级页面跳转
* getScrollXY&emsp;获取窗口滚动坐标

### keycode
#### [keycode][keycode]&emsp;键盘相关操作
* getKeyName&emsp;根据keycode获得键名 

### object
#### [object][object]&emsp;对象相关操作
* deepClone&emsp;深度clone
* isEmptyObject&emsp;判断obj是否为空
* extend&emsp;扩展对象

### random
#### [random][random]&emsp;随机数相关操作
* randomNum&emsp;生成指定范围[min, max]的随机数
* randomColor&emsp;随机生成颜色
* getUUID&emsp;生成32位随机数

### regexp
#### [regexp][regexp]&emsp;正则相关操作
* isEmail&emsp;判断是否为邮箱地址
* isIdCard&emsp;判断是否为身份证号
* isPhoneNum&emsp;判断是否为手机号
* isUrl&emsp;判断是否为URL地址
* isIqiyiApp&emsp;判断是否爱奇艺APP访问的H5链接
* getIqiyiAppVersion&emsp;获取爱奇艺APP版本号

### storage
#### [storage][storage]&emsp;获取window对象上的本地存储数据
* session&emsp;获取存储的sessionStorage
* local&emsp;获取存储的localStorage

### string
#### [string][string]&emsp;字符串相关操作
* digitUppercase&emsp;现金额转大写

### url
#### [url][url]&emsp;浏览器地址相关操作
* getPageName&emsp;获取url路径名
* getQueryString&emsp;获取url参数
* getHash&emsp;获取url中hash值
* parseQueryString&emsp;url参数转对象
* stringfyQueryString&emsp;对象序列化
* getNewApiUrl&emsp;设置来源

[array]:http://192.168.4.220:3000/ssports_fe/ssports-utils/src/dev/src/array/array.js
[browser]:http://192.168.4.220:3000/ssports_fe/ssports-utils/src/dev/src/browser/browser.js
[calc]:http://192.168.4.220:3000/ssports_fe/ssports-utils/src/dev/src/calc/calc.js
[cookie]:http://192.168.4.220:3000/ssports_fe/ssports-utils/src/dev/src/cookie/cookie.js
[dom]:http://192.168.4.220:3000/ssports_fe/ssports-utils/src/dev/src/dom/dom.js
[function]:http://192.168.4.220:3000/ssports_fe/ssports-utils/src/dev/src/function/function.js
[iframe]:http://192.168.4.220:3000/ssports_fe/ssports-utils/src/dev/src/iframe/iframe.js
[keycode]:http://192.168.4.220:3000/ssports_fe/ssports-utils/src/dev/src/keycode/keycode.js
[object]:http://192.168.4.220:3000/ssports_fe/ssports-utils/src/dev/src/object/object.js
[random]:http://192.168.4.220:3000/ssports_fe/ssports-utils/src/dev/src/random/random.js
[regexp]:http://192.168.4.220:3000/ssports_fe/ssports-utils/src/dev/src/regexp/regexp.js
[storage]:http://192.168.4.220:3000/ssports_fe/ssports-utils/src/dev/src/storage/storage.js
[string]:http://192.168.4.220:3000/ssports_fe/ssports-utils/src/dev/src/string/string.js
[url]:http://192.168.4.220:3000/ssports_fe/ssports-utils/src/dev/src/url/url.js