You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
161 lines
3.9 KiB
161 lines
3.9 KiB
var tools = (function(){
|
|
var toolsObj = {
|
|
$:function(selector,context){
|
|
/*
|
|
|
|
* #id
|
|
* .class
|
|
* 标签
|
|
* "#id li"
|
|
* ".class a"
|
|
* */
|
|
context = context || document;
|
|
if(selector.indexOf(" ") !== -1){
|
|
return context.querySelectorAll(selector);
|
|
}else if( selector.charAt(0) === "#" ){
|
|
return document.getElementById(selector.slice(1))
|
|
}else if( selector.charAt(0) === "." ){
|
|
return context.getElementsByClassName(selector.slice(1));
|
|
}else{
|
|
return context.getElementsByTagName(selector);
|
|
}
|
|
},
|
|
addEvent:function(ele,eventName,eventFn){
|
|
ele.addEventListener(eventName,eventFn,false);
|
|
},
|
|
removeEvent:function(ele,eventName,eventFn){
|
|
ele.removeEventListener(eventName,eventFn,false);
|
|
},
|
|
addClass:function (element,clsNames){
|
|
if( typeof clsNames === "string" ){
|
|
if(!tools.hasClass(element,clsNames)){
|
|
element.className += " "+clsNames;
|
|
}
|
|
}
|
|
},
|
|
removeClass:function (element,clsNames){
|
|
var classNameArr = element.className.split(" ");
|
|
for( var i = 0; i < classNameArr.length; i++ ){
|
|
if( classNameArr[i] === clsNames ){
|
|
classNameArr.splice(i,1);
|
|
i--;
|
|
}
|
|
}
|
|
element.className = classNameArr.join(" ");
|
|
},
|
|
hasClass:function(ele,classNames){
|
|
|
|
var classNameArr = ele.className.split(" ");
|
|
for( var i = 0; i < classNameArr.length; i++ ){
|
|
if( classNameArr[i] === classNames ){
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
},
|
|
toggleClass:function (ele,classNames){
|
|
if( tools.hasClass(ele,classNames) ){
|
|
tools.removeClass(ele,classNames);
|
|
return false;
|
|
}else{
|
|
tools.addClass(ele,classNames);
|
|
return true;
|
|
}
|
|
},
|
|
parents:function(obj,selector){
|
|
/*
|
|
|
|
* selector
|
|
* id
|
|
* class
|
|
* 标签
|
|
* */
|
|
|
|
if( selector.charAt(0) === "#" ){
|
|
while(obj.id !== selector.slice(1)){
|
|
obj = obj.parentNode;
|
|
}
|
|
}else if( selector.charAt(0) === "." ){
|
|
while((obj && obj.nodeType !== 9) && !tools.hasClass(obj,selector.slice(1))){
|
|
obj = obj.parentNode;
|
|
}
|
|
}else{
|
|
while(obj && obj.nodeType !== 9 && obj.nodeName.toLowerCase() !== selector){
|
|
obj = obj.parentNode;
|
|
}
|
|
}
|
|
|
|
return obj && obj.nodeType === 9 ? null : obj;
|
|
},
|
|
each:function(obj,callBack){
|
|
for( var i = 0; i < obj.length; i++ ){
|
|
callBack(obj[i],i);
|
|
}
|
|
},
|
|
getEleRect:function(obj){
|
|
return obj.getBoundingClientRect();
|
|
},
|
|
collisionRect:function(obj1,obj2){
|
|
var obj1Rect = tools.getEleRect(obj1);
|
|
var obj2Rect = tools.getEleRect(obj2);
|
|
|
|
var obj1W = obj1Rect.width;
|
|
var obj1H = obj1Rect.height;
|
|
var obj1L = obj1Rect.left;
|
|
var obj1T = obj1Rect.top;
|
|
|
|
var obj2W = obj2Rect.width;
|
|
var obj2H = obj2Rect.height;
|
|
var obj2L = obj2Rect.left;
|
|
var obj2T = obj2Rect.top;
|
|
//碰上返回true 否则返回false
|
|
if( obj1W+obj1L>obj2L && obj1T+obj1H > obj2T && obj1L < obj2L+obj2W && obj1T<obj2T+obj2H ){
|
|
return true
|
|
}else{
|
|
false;
|
|
}
|
|
},
|
|
store:function (namespace, data) {
|
|
if (data) {
|
|
return localStorage.setItem(namespace, JSON.stringify(data));
|
|
}
|
|
|
|
var store = localStorage.getItem(namespace);
|
|
return (store && JSON.parse(store)) || [];
|
|
},
|
|
extend:function (obj){
|
|
var newArr = obj.constructor === Array ? [] : {};
|
|
for( var attr in obj ){
|
|
if( typeof obj[attr] === "object"){
|
|
newArr[attr] = tools.extend(obj[attr]);
|
|
}else{
|
|
newArr[attr] = obj[attr];
|
|
}
|
|
}
|
|
return newArr;
|
|
},
|
|
hide:function (element){
|
|
return element.style.display = "none";
|
|
},
|
|
show:function (element){
|
|
return element.style.display = "block";
|
|
},
|
|
getOffset:function (obj){
|
|
return {
|
|
width:obj.offsetWidth,
|
|
height:obj.offsetHeight
|
|
}
|
|
},
|
|
insertBefore: function(newElem, parentNode) {
|
|
if (parentNode.firstElementChild) {
|
|
parentNode.insertBefore(newElem, parentNode.firstElementChild);
|
|
} else {
|
|
parentNode.appendChild(newElem);
|
|
}
|
|
}
|
|
}
|
|
|
|
return toolsObj;
|
|
|
|
}())
|
|
|