h获取时间戳:
let current=Date.now() || (new Date()).getTime();hasClass方法:
var hasClass = function (e, c) {
// re 是一个正则表达式
// (^|\\s)是一个分组 ^ 直接开头 或者是以空格 \\s 第一个反斜杠为转义字符
// (\\s|$)也是一个分组 $ 是直接结尾
// p op kp
var re = new RegExp("(^|\\s)" + c + "(\\s|$)");
return re.test(e.className);
};addClass
var addClass = function (e, c) {
if ( me.hasClass(e, c) ) {
return;
}
// 将类名进行切割
// 然后添加新的类名
// 再拼接器类
var newclass = e.className.split(' ');
newclass.push(c);
e.className = newclass.join(' ');
};
removeClass
var removeClass=function(){
var re = new RegExp("(^|\\s)" + c + "(\\s|$)", 'g');
// 找到之后将其替换为空格
e.className = e.className.replace(re, ' ');
}获取到dom的offset对象
var offset = function(el){
var left = -el.offsetLeft,
top = -el.offsetTop;4
// 循环迭代
// 因为可能是层层定位的,
// 所以要把el.offsetParent定位父级给当前的el
// 再次计算定位位置
while (el = el.offsetParent) {
left -= el.offsetLeft;
top -= el.offsetTop;
}
return {
left: left,
top: top
};
}
indexOf
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function (elt /*, from*/) {
var len = this.length >>> 0;
var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if (from < 0)
from += len;
for (; from < len; from++) {
if (from in this &&
this[from] === elt)
return from;
}
return -1;
};
};
trim() 除去两边空白 兼容IE 但是会和ng起冲突
String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/g,"");
}
isInt()//是不是整数
String.prototype.isInt = function() {
if (this == "NaN")
return false;
return this == parseInt(this).toString();
}
lastIndexOf()//反向查询匹配String.prototype.lastIndexOf=function(item){
var len=this.length;
for(var i=len;i>=0;i--){
if(this[i]===item){
return len-i;
}
}
return -1;
}