前端开发工具集 eutils
该项目整理了前端比较常用的工具集,包括js工具和css工具;
当我们新建一个前端项目时,只需要引入这个npm包,就可以省去很多写工具的重复工作;
$ npm install @jnlong/eutils
使用js // js引用方法1 import eutils from 'eutils'; eutils.date.format('2018-9-6', '{y}/{m}/{d} {h}:{i}:{s}'); // js引用方法2 import {type, urlParse, date, log as ulog} from 'eutils'; date.format(new Date(), 'YYYY-MM-DD HH:mm:ss.SSS'); // 按需引入js源文件 import date as uDate from 'eutils/src/js/date'
style
// 引入css @import 'eutils/dist/index.css'; // 引入less:webpack需要配置less解析 @import 'eutils/src/style/index.less'; @import 'eutils/src/style/index.less';
用法
在 example/main.js中编写了每一个API的用法,可以打开文件查看。
example可以运行样例查看example
git clone git@github.com:jnlong/eutils.git
cd eutils
npm install --save-dev
npm run dev
用浏览器打开 http://localhost:8088/
查看example,也可以同时打开浏览器的控制台查看console信息APItools为了方便调用,tools目录的API生成在eutils根目录,调用方法:eutils.log(), eutils.toast(msg)
log调用方法:eutils.log(arg1, arg2, arg3, ...);参数:log(args),接受多个参数;打印日志,可以通过window.isDebug
来全局控制是否打印的开关,实现只在测试环境打印日志;为了提高可读性,在打印时对一个参数设置了颜色deepCopy
object深拷贝,使用深拷贝的目的是:避免复制后的对象的更改,传递给源对象;
调用方法:eutils.deepCopy(obj);
toast弹窗,调用后弹出一个toast;
调用方法:eutils.toast('我是一个toast');
调用方法:eutils.versionCompare(v1, v2);
参数日期格式化;
调用方法:etuils.date.format(new Date(), 'YYYY-MM-DD [at] HH:mm:ss');
计算时间2比时间1,间隔的时长,同时支持之前和之后;如 1年前,3个月前,20天前,5分钟前,2秒前,5个月后,3小时后;
调用方法:eutils.date.calDuration(d1, d2) ;
(new Date(), unit, count) 对一个日期对象,加上某个单位的数量;比如给一个日期加3天:add(new Date(), 'd', 3)
调用方法:eutils.date.calDuration(d1, d2) ;
获取cookie;
调用方法:eutils.cookie.get(name) ;
添加cookie;
调用方法:eutils.cookie.set({name: '', value: '', days: 3, path: '/'}) ;
删除cookie;
调用方法:eutils.cookie.del(name) ;
调用方法:eutils.urlparse.search(name, url);
参数在url上添加参数,并且返回新的url;
调用方法:eutils.urlparse.add(name, value, url);
在url上删除参数;
调用方法:eutils.urlparse.remove(name, url);
调用方法:eutils.urlparse.replace(name, newValue, url);
参数将json转换成url格式;
调用方法:eutils.urlparse.jsonToQuery(obj);
将url转换成json格式
调用方法:eutils.urlparse.queryToJson(url);
为了方便调用,load目录的API生成在eutils根目录
loadCss动态加载外部css链接,并且通过id校验来避免重复添加;
调用方法:eutils.loadCss(href, id);
动态加载script,并且通过id校验来避免重复添加;
调用方法:eutils.loadScript(src, cb, id);
(src, cb, id)
参数为了方便调用,type目录的API生成在eutils根目录,调用方法如:eutils.isSupportWebP()
isSupportWebP判断是否支持webp格式的图片
返回:Boolean
判断obj是不是String类型
返回:Boolean
判断obj是不是Numbe类型
返回:Boolean
判断obj是不是Arra类型
返回:Boolean
判断obj是不是Function类型
返回:Boolean
判断obj是不是Date类型
返回:Boolean
类型判断:判断str是否是指定类型,返回Boolean;
调用方法:eutils.checkType(str, type);
正则校验的类型: IP、QQ、english、chinese、tel、phone、postal、email、money、url、date
例如:
eutils.checkType('13812560000', 'phone'); // 返回 true
etutil.checkType('aaaxxx', 'url'); // 返回false
根据ua判断浏览器环境、版本号;
parse调用方法,eutils.detector.parse(ua);
参数返回json,格式如下:
{ device: { name: "iphone", version: -1, fullVersion: "-1", [iphone]: -1 }, os: { name: "ios", version: 6.1, fullVersion: "6.1", [ios]: 6.1 }, browser: { name: "chrome": version: 26.0, fullVersion: "26.0.1410.50", mode: 26.0, fullMode: "26.0.1410.50", compatible: false, [chrome]: 26.0 }, engine: { name: "webkit", version: 536.26, fullVersion: "536.26", mode: 523.26, fullMode: "523.26", compatible: false, [webkit]: 536.26 }}
csscommon
常用样式
word-nowrap: 文本-强制不换行word-wrap: 文本-强制换行ellipsis: 多出部分用省略号表示 , 用于一行ellipsis2: 多出部分用省略号表示 , 用于两行ellipsis3: 多出部分用省略号表示 , 用于三行flex: flex布局flex-center: flex布局,水平居中flex-middle: flex布局,垂直居中flex-cm: flex布局,垂直、水平都居中center: 在父元素中,水平、垂直居中;mask: 遮罩层bg: 背景图样式设置reset为了保持各类浏览器初始样式的一致性,执行格式重置;
normalize.cssnormalize.css v8.0.1
来源地址:github.com/necolas/normalize.css
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。