!function(util){
window.Utils = util();
}(
function(){
//document_event_attributes
var DEA = "doc-attr";
var key = function(dom){ return true; };
document.addEventListener("click",function(e){
var dom = e.target;
//判断是否进行运行
if( !key(dom) ) { return };
//对dom进行taggle调用
var _dom = dom;
var dea = null;
for( var i=0;i<3;i++ ){
dea = _dom.getAttribute(DEA);
if( dea ){
dea = dea.split(" ");
for( var i in dea )
util.elementEventAttributes[dea[i]](_dom);
break;
}
_dom = util.parent(_dom);
}
})
//工具对象
var util = {
//对document进行的属性操作指令
//直接通过标签进行事件识别
elementEventAttributes : {}
//版本号
version : '1.0'
};
util.$ = function(querySelect){
if( typeof $ !== undefined || typeof jQuery !== undefined ){
return Array.prototype.slice.apply(jQuery(querySelect));
}else if( document.querySelectorAll ){
return document.querySelectorAll(querySelect);
}else {
//扩展ie查询
// return document.querySelectorAll(querySelect);
return [];
}
}
//绑定事件
util.addEvent = function(element,name,call){
element.addEventListener(name,call);
}
//查询是否存在class
util.hasClass = function(dom,className){
var name = dom.className;
var nameA = name.replace(/\s{2,}/g," ").split(" ");
if( nameA.indexOf("className") ){
}
}
//获取父级
util.parent = function(dom){
return dom.parentElement;
}
//显示
util.show = function(element){
if( util.SplitFunction() ) return
element.oldDisplay = element.style.display;
element.style.display = "block";
}
//隐藏
util.hide = function(element){
if( util.SplitFunction() ) return;
element.style.display = element.oldDisplay || "none";
}
//隐藏
util.taggle = function(element){
if( util.SplitFunction() ) return;
if( util.isElementVisible(element) ){
util.hide(element);
}else{
util.show(element);
}
}
//打开全屏方法
util.openFullscreen = function(element) {
if (element.requestFullscreen) {
element.requestFullscreen();
} else if (element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if (element.msRequestFullscreen) {
element.msRequestFullscreen();
} else if (element.webkitRequestFullscreen) {
element.webkitRequestFullScreen();
}
}
//退出全屏方法
util.exitFullScreen = function() {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.msExitFullscreen) {
document.msExiFullscreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
}
//将函数的参数如果是数组传入的话 进行拆分多次执行
util.SplitFunction = function(name){
//获取函数名
var name = name || arguments.callee.caller;
//获取函数参数
var argu = arguments.callee.caller.arguments;
if( argu.length !== 1 ) return;
argu = argu[0];
//如果参数为数组 切只有一个的话
if( util.isArray(argu) ){
for( var i in argu ){
if( util.isArray(argu[i]) ) continue;
name(argu[i]);
}
return true;
}else{
return false;
}
}
util.download = function(filename, text){
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
element = null;
}
util.getTime = function(i){
var t = new Date();
return t.getFullYear()+"_"+t.getMonth()+"_"+t.getDay();
}
util.isArray = function(obj){
return typeof obj === "object" && obj.length !== undefined && obj.push !== undefined;
}
util.isElementVisible = function(obj){
return !(obj.style.display === 'none');
}
//属性函数 显示按钮
util.elementEventAttributes.showBtn = function(dom){
var opt_queryselect = dom.getAttribute("showBtn-queryselect") || dom.getAttribute("e-queryselect");
if( !opt_queryselect || opt_queryselect === "" || !dom ) return;
var doms = util.show(util.$(opt_queryselect));
}
//属性函数 显示按钮
util.elementEventAttributes.hideBtn = function(dom){
var opt_queryselect = dom.getAttribute("hideBtn-queryselect") || dom.getAttribute("e-queryselect");
if( !opt_queryselect || opt_queryselect === "" || !dom ) return;
var doms = util.hide(util.$(opt_queryselect));
}
//属性函数 显示按钮
util.elementEventAttributes.taggleBtn = function(dom){
var opt_queryselect = dom.getAttribute("taggleBtn-queryselect") || dom.getAttribute("e-queryselect");
if( !opt_queryselect || opt_queryselect === "" || !dom ) return;
var doms = util.taggle(util.$(opt_queryselect));
}
//属性函数 checkbox 总开关
util.elementEventAttributes.checkboxBtn = function(dom){
setTimeout(function(){
var opt_queryselect = dom.getAttribute("checkboxBtn-queryselect") || dom.getAttribute("e-queryselect");
if( !opt_queryselect || opt_queryselect === "" || !dom ) return;
for( var i in opt_queryselect ){
opt_queryselect[i].checked = dom.checkbox;
opt_queryselect[i].change
}
})
}
//属性函数 开启全屏
util.elementEventAttributes.onFullScreen = function(dom){
util.openFullscreen(dom);
}
//属性函数 关闭全屏
util.elementEventAttributes.offFullScreen = function(dom){
util.exitFullScreen(dom);
}
//属性函数 taggle全屏
util.elementEventAttributes.taggleFullScreen = function(dom){
var opt_queryselect = dom.getAttribute("taggleFullScreen-queryselect") || dom.getAttribute("e-queryselect");
var _dom = util.$(opt_queryselect)[0];
if( !document.fullscreenElement ){
//如果不存在当前全屏的对象
return util.openFullscreen(_dom);
}else if( document.fullscreenElement === _dom ){
//如果全屏对象等于传入函数
return util.exitFullScreen();
}else {
//即存在的全屏对象不等于传入的操作dom
util.exitFullscreen()
return util.exitFullScreen(_dom)
}
}
//属性函数 taggle文案
util.elementEventAttributes.taggleAttr = function(dom){
var opt_queryselect = dom.getAttribute("taggleAttr-queryselect") || dom.getAttribute("e-queryselect");
var opt_replace = dom.getAttribute("taggleAttr-replace");
var opt_replacetype = dom.getAttribute("taggleAttr-replacetype") || "innerText";
var _dom = util.$(opt_queryselect)[0];
var old = _dom[opt_replacetype];
_dom[opt_replacetype] = opt_replace;
dom.setAttribute("taggleAttr-replace",old);
}
return util;
}
)
API
addEvent(element,name,call) //绑定函数
hasClass(dom,classname,newClass) //判断是否存在class 可以选择替换
parent(element) //获取父级
show(element) //显示
hide(element) //隐藏
taggle( element ) //交替显示或隐藏
openFullscreen( element ) //打开全屏方法
exitFullScreen() //退出全屏方法
SplitFunction( ) //将函数的参数如果是数组传入的话 进行拆分多次执行
download( filename , text ) //下载 文件名 文件内容
getTime(index) //获取时间 格式为 year_month_day
isArray(obj) //判断类型
isElementVisible(element) //判断是否是隐藏的
doc-attr 函数合集
showBtn //显示按钮
showBtn-queryselect //显示对象的css选择器表达式 通用queryselect
hideBtn
hideBtn-queryselect //显示对象的css选择器表达式 通用queryselect
taggleBtn
taggleBtn-queryselect //显示对象的css选择器表达式 通用queryselect
checkboxBtn //属性函数 checkbox 总开关
checkboxBtn-queryselect //选择器
onFullScreen //开启全屏
onFullScreen-queryselect
offFullScreen //关闭全屏
taggleFullScreen
taggleFullScreen-queryselect
taggleAttr
taggleAttr-queryselect
taggleAttr-replace //替换的值
taggleAttr-replacetype //替换的属性 默认为innerHTML