JS-功能函数 1.0.docx_第1页
JS-功能函数 1.0.docx_第2页
JS-功能函数 1.0.docx_第3页
JS-功能函数 1.0.docx_第4页
JS-功能函数 1.0.docx_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/JavaScript Document/*功能函数*/*Edit By Richardadda-QZQL*/*version 1.0 , Encode utf-8 without BOM*/获取浏览器可视域高度function getViewHeight() return document.documentElement.clientHeight|document.body.clientHeight|window.innerHeight;/获取浏览器可视域宽度function getViewWidth() return document.documentElement.clientWidth|document.body.clientWidth|window.innerWidth;/获取滚动条横向位置function getScrollLeft() return document.documentElement.scrollLeft|document.body.scrollLeft;/获取滚动条纵向位置function getScrollTop() return document.documentElement.scrollTop|document.body.scrollTop;/获取滚动条位置function getScroll() return top : document.documentElement.scrollTop|document.body.scrollTop, left : document.documentElement.scrollLeft|document.body.scrollLeft ;/获取CSS样式属性值function getStyle(_this_Ele,attr) var value; if(typeof window.getComputedStyle!=undefined)value = window.getComputedStyle(_this_Ele,null)attr; else if(typeof _this_Ele.currentStyle!=undefiend)value = _this_Ele.currentStyleattr; return value;/设置CSS样式属性function setStyle(_this_ELe,attr,value) if(attr!=opacity) _this_ELe.styleattr = value + px; else _this_ELe.style.opacity = (value/100).toFixed(2);_this_ELe.style.filter = alpha(opacity= + value + ); /设置或获取CSS样式属性值function CSS(_this_ELe,attr,value) if(arguments.length=2)var sCur=_this_ELe.currentStyle ? _this_ELe.currentStyleattr:document.defaultView.getComputedStyle(_this_ELe,null)attr;if(attr=opacity) return parseInt(parseFloat(sCur)*100);else return parseInt(sCur); else if(arguments.length=3) switch(attr)case width:case height:case paddingLeft:case paddingTop:case paddingRight:case paddingBottom:value = Math.max(value,0);case left:case top:case marginLeft:case marginTop:case marginRight:case marginBottom:case fontsize:_this_ELe.styleattr = value + px; break;case opacity:_this_ELe.style.filter = alpha(opacity: + value + );_this_ELe.style.opacity = value/100; break;default:_this_ELe.styleattr = value; return function(attr_in,value_in)CSS(_this_ELe,attr_in,value_in);/面向过程的动画框架function startAnimate(obj,arrmul,parm,fn) /obj、mul参数必选;parm、fn参数可选 clearInterval(obj.timer); var _speed = 0; var _attr = 0; var iBtn = true; var flag = true; var index = 0; var len = arrmul.length; if(!arrmul) /检测属性对象传参 throw new Error(参数错误:无法获取属性对象);return; if(!parm) /检测参数对象传参 parm = /完整缺省值 type : buffer, veloc : 5, inter : 30, multi : 0.8, async : false, delay : 30; else /部分缺省值 if(!parmtype) parmtype = buffer;if(!parmveloc) parmveloc = 5;if(!parminter) parminter = 30;if(!parmmulti) parmmulti = 0.8; /值域:(0.5,1.0)if(!parmasync) parmasync = false;if(!parmdelay) parmdelay = 30; if(parmtype=circu) /圆周运动 if(!parmveloc) parmveloc = 1;var tim = parmveloc;var vir = tim/100; obj.timer = setInterval(function() flag = true; var now = (new Date().getTime(); obj.lastExecTime = now;if(parmtype!=circu) execMove(obj,arrmul,flag); else tim += 1; var _left = f_left = (arrmul0left-(obj.offsetWidth)/2) + arrmul0radius_x*Math.cos(vir*tim); var _top = f_top = (arrmul0top-(obj.offsetHeight)/2) + arrmul0radius_y*Math.sin(vir*tim); obj.style.left = _left + px; obj.style.top = _top + px; flag = false; ,parminter); if(!obj.lastExecTime) obj.lastExecTime = 0; if(parmasync=true) var now = (new Date().getTime();if(now-obj.lastExecTimeparmdelay) execMove(obj,arrmul,flag); obj.lastExecTime = now; function execMove(_this_Ele_obj,_this_Ele_mul,_this_Ele_flag) var mul = _this_Ele_mulindex; for(var attr in mul) if(parmtype=buffer) /缓冲动画 moveBuffer(_this_Ele_obj,attr,mul); if(parseInt(CSS(_this_Ele_obj,attr)!=mulattr) _this_Ele_flag = false; else if(parmtype=constant) /匀速动画 if(parseInt(CSS(_this_Ele_obj,attr)!=mulattr) _this_Ele_flag = false; moveConstant(_this_Ele_obj,attr,mul); else if(parmtype=flex) /弹性动画 moveFlex(_this_Ele_obj,attr,mul); if(parseInt(CSS(_this_Ele_obj,attr)!=mulattr) _this_Ele_flag = false; if(_this_Ele_flag) if(index!=len) index+; else index = 0;clearInterval(obj.timer); if(fn) fn.call(obj); function moveBuffer(_this_obj,_this_attr,_this_mul) /缓冲动画子函数var icur = CSS(_this_obj,_this_attr); var speed = (_this_mul_this_attr-icur)/parmveloc;speed = (speed0) ? Math.ceil(speed):Math.floor(speed); CSS(_this_obj,_this_attr,(icur+speed); function moveConstant(_this_obj,_this_attr,_this_mul) /匀速动画子函数var icur = CSS(_this_obj,_this_attr);var speed = parmveloc; speed = _this_mul_this_attr 0&Math.abs(icur-_this_mul_this_attr)=speed) CSS(_this_obj,_this_attr,(_this_mul_this_attr);else if(speed0&(icur-_this_mul_this_attr0) ? Math.ceil(speed):Math.floor(speed); CSS(_this_obj,_this_attr,(icur+speed);else var icur = CSS(_this_obj,_this_attr); if(!_this_obj.Speed) _this_obj.Speed = ; if(!_this_obj.Speed_this_attr) _this_obj.Speed_this_attr = 0; _this_obj.Speed_this_attr += (_this_mul_this_attr-icur)/parmveloc; _this_obj.Speed_this_attr *= parmmulti; _attr += _this_obj.Speed_this_attr; if(parseInt(icur)!=_this_mul_this_attr) flag = false; if(Math.abs(_this_obj.Speed_this_attr)=1&Math.abs(_attr-_this_mul_this_attr)=1) _this_obj.Speed_this_attr += (_this_mul_this_attr-icur)/parmveloc; _this_obj.Speed_this_attr *= parmmulti; _attr += _this_obj.Speed_this_attr; CSS(_this_obj,_this_attr,(_this_obj.Speed_this_attr+icur);else CSS(_this_obj,_this_attr,(_this_mul_this_attr); return obj.timer;/添加CSS样式规则项function inertRule(sheet,selector,cssText,position) if(typeof sheet.insertRule!=undefined) sheet.insertRule(selector + + cssText + ,position); else if(typeof sheet.addRule!=undefined) sheet.addRule(selector,cssText,position); /删除CSS样式规则项function deleteRule(sheet,position) if(sheet.deleteRule) sheet.deleteRule(position); else if(sheet.remove) sheet.removeRule(position); /获取指定节点function getNode(nodeName,parentNode) var tag_node = ; var node = null; if(nodeName.slice(0,1)=.) if(typeof parentNode!=undefined) node = parentNode;else node = document;var all_class_node = node.getElementsByTagName(*);for(var i=0;iall_class_node.length;i+) if(new RegExp(s|) +nodeName.slice(1) +(s|$).test(all_class_nodei.className) tag_node.push(all_class_nodei); else if(nodeName.slice(0,1)=#)tag_node0 = document.getElementById(nodeName.slice(1);return tag_node0; else if(nodeName.slice(0,1)!=#&nodeName.slice(0,1)!=.) if(typeof parentNode!=undefined) node = parentNode;else node = document;var all_tag_node = node.getElementsByTagName(nodeName);for(var i=0;iall_tag_node.length;i+) tag_node.push(all_tag_nodei); return tag_node;/获取CLASS节点集合function getClass(className,parentNode) var node = null; var temps = ; if(parentNode!=undefined) node = parentNode; elsenode = document; var all = node.getElementsByTagName(*); for(var i=0;iall.length;i+)if(new RegExp(s|) +className +(s|$).test(alli.className) temps.push(alli); return temps;/获取节点数组中指定节点的上一节点索引值function prevIndex(current,parent) /参数:当前节点索引值,当前节点的父节点 var temp = parent.children.length; if(parseInt(current)=0) return temp - 1; else return parseInt(current) - 1; /获取节点数组中指定节点的下一节点索引值function nextIndex(current,parent) /参数:当前节点索引值,当前节点的父节点 var temp = parent.children.length; if(parseInt(current)=temp - 1) return 0; else return parseInt(current) + 1; /判断class是否存在function hasClass(_this_Ele,className) return _this_ELe.className.match(new RegExp(s|) + className + (s|$);/阻止浏览器默认行为function preDef(eve) var evte = eve|window.event; if(evte.preventDefault) evte.preventDefault(); else returnValue = false; /数组代数运算function getSum(array,type) if(arguments.length=0) return; var sum = array0; var len = array.length; for(var i=1;ilen;i+) if(type=adde) /Additive sum += arrayi;else if(type=subn) /Subtraction sum -= arrayi;else if(type=muln) /Multiplication sum *= arrayi;else if(type=divn) /Division sum /= arrayi; return sum;/字符串字符索引function getStringIndex(string,str) /扫描字符串,索引字符 var array = ; if(arguments.length-1;) array.push(pos); pos = string.indexOf(str,pos+1);return array; /指定区间内的随机数(window.onload函数外引用)function getRandom(upper,down) var random = 0; if(arguments.length=1) return; else if(upperdown) var temp = down; down = upper; upper = temp;var sum = upper + down;return random = Math.floor(Math.random()*sum+down); /获取浏览器窗口左边距位置function getBrowserLeft() return left = (typeof window.screenLeft=number) ? window.screenLeft:window.screenX;/获取浏览器窗口上边距位置function getBrowserTop() return top = (typeof window.screenTop=number) ? window.screenTop:window.screenY;/获取事件目标对象function getEventObject(evte) if(evte.target) return evte.target; else if(evte.srcElement) return evte.srcElement; /检测IE版本function checkIE() var client = Trident : false,ver : 0 ; var agent = navigator.userAgent; if(/MSIE (;+)/.test(agent) clientTrident = true; clientver = RegExp$1; return client;/阻止默认行为function predef(e) e.preventDefault();/删除前后空格function trim(str) return str.replace(/(s*)|(s*$)/g, );/过滤HTML标签function removeHTMLTag(str) str = str.replace(/*/g,); /去除HTML tag str = str.replace(/|*n/g,n); /去除行尾空白 /str = str.replace(/ns|*r/g,n); /去除多余空行 str=str.replace(/ /ig,);/去掉  return str;/获取浮点数最大区间function getFloatNum() return floatMax : Number.MAX_VALUE,floatMin : Number.MIN_VALUE ;/获取数值最大区间function getMaxNum() return maxNum : Number.POSITIVE_INFINITY,minNum : Number.NEGATIVE_INFINITY ;/阻止事件冒泡function stopEventBubble(eve) var evte = eve|window.event; if(evte&evte.stopPropagation) evte.stopPropagation(); else evte.cancelBubble = true; /获取键盘字符键按键function getCharCode(eve) var evte = eve|window.event; if(typeof evte.charCode=number) return evte.charCode; else return evte.keyCode; /获取鼠标中键事件function getWD(eve) var evte = eve|window.event; if(evte.wheelDelta) return evte.wheelDelta; else if(evte.detail) return -evte.detail; /获取鼠标对象临近元素function getTarget(eve) var evte = eve|window.event; if(evte.srcElement) if(evte.type=mouseover) return evte.fromElement; else if(evte.type=mouseout) return evte.toElement; else if(evte.relatedTarget) return evte.relatedTarget; /获取鼠标点击目标function getClickTarget(eve) var evte = eve|window.event; return evte.srcElement|evte.target;/设置取消事件流冒泡function setStopPro(eve) var evte = eve|window.event; window.event ? window.event.cancelBubble=true:evte.stopPropagation();/获取event事件function getEvent(eve) return eve|window.event;/快速排序方法(顺序)function quickSeqSort(array) if(array.length=1) return array; var left_arr = ; var right_arr = ; var mid_num = Math.floor(array.length/2); var mid_value = array.splice(mid_num,1); for(var i=0;iarray.length;i+) if(arrayimid_value) left_arr.push(arrayi);else right_arr.push(arrayi); return quickSeqSort(left_arr).concat(mid_value,quickSeqSort(right_arr);/快速排序方法(逆序)function quickInvSort(array) if(array.length=1) return array; var left_arr = ; var right_arr = ; var mid_num = Math.floor(array.length/2); var mid_value = array.splice(mid_num,1); for(var i=0;imid_value) left_arr.push(arrayi);else right_arr.push(arrayi); return quickInvSort(left_arr).concat(mid_value,quickInvSort(right_arr);/获取元素绝对顶点距function getAbsTop(element) var top = element.offsetTop; var parent = element.offsetParent; while(parent!=null) top += parent.offsetTop;parent = parent.offsetParent; return top;/获取元素绝对左边距function getAbsLeft(element) var left = element.offsetLeft; var parent = element.offsetParent; while(parent!=null) left += parent.offsetLeft;parent = parent.offsetParent; return left;/添加事件绑定appendEvent.ID = 1;function appendEvent(obj,type,fn) if(typeof obj.addEventListener!=undefined) return obj.addEventListener(type,fn,false); else /创建一个存放事件的哈希表 if(!obj.events) obj.events = ;/创建一个存放事件处理的数组if(!obj.eventstype) obj.eventstype = ; /存储第一个事件处理函数 if(objon+type) obj.eventstype0 = fn; else /屏蔽同一个事件处理函数增加项 if(appendEvent.equal(obj.eventstype,fn)return false; obj.eventstypeappendEvent.ID+ = fn;objon+type = appendEvent.exec; /添加事件处理函数appendEvent.exec = function(eve) var evte = eve|appendEvent.fixEvent(window.event); for(var i in this.eventsevte.type) this.eventsevte.typei.call(this,evte); ;/屏蔽同一个注册处理函数appendEvent.equal = function(es,fn) for(var i in es) if(esi=fn) return true;return false; ;/IE event事件兼容W3CappendEvent.fixEvent = function(eve) eve.preventDefault = appendEvent.fixEvent.preventDefault; eve.stopPropagation = appendEvent.fixEvent.stopPropagation; eve.target = eve.srcElement; return eve; /兼容 IE 和 W3C 阻止默认行为appendEvent.fixEvent.preventDefault = function() this.returnValue = false;/兼容 IE 和 W3C 取消冒泡appendEvent.fixEvent.stopPropagation = function() this.cancelBubble = true;/删除事件绑定function deleteEvent(obj,type,fn) if(typeof removeEventListener!=undefined) obj.removeEventListener(type,fn); else if(obj.events) for(var i in obj.eventstype) if(obj.eventstypei=fn) delete ogj.eventstypei; /滚动条清零function scroll() document.documentElement.scrollTop = 0; document.body.scrollTop = 0;/浏览器检测(function () window.sys = ; /浏览器信息对象 var ua = navigator.userAgent.toLowerCase(); var s = ; /浏览器版本信息数组 if(/msie (d.+)/).test(ua) s = ua.match(/msie (d.+)/); sys.ie = s1; if(/firefox/(d.+)/).test(ua) s = ua.match(/firefox/(d.+)/);sys.firefox = s1; if(/chrome/(d.+)/).test(ua) s = ua.match(/chrome/(d.+)/);sys.chrome = s1; if(/opera.*version/(d.+)/).test(ua) s = ua.match(/opera.*version/(d.+)/);sys.opera = s1; if(/version/(d.+).*safari/).test(ua) s = ua.match(/version/(d.+).*safari/);sys.safari = s1; if(/webkit/.test(ua) s = ua.match(/webkit/d.+/);sys.webkit = s1; )();/*/浏览器检测(精简代码)(function ()window.sys = ;var ua = navigator.userAgent.toLowerCase();var s;(s = ua.match(/msie (d.+)/) ? sys.ie = s1 :(s = ua.match(/firefox/(d.+)/) ? sys.firefox = s1 :(s = ua.match(/chrome/(d.+)/) ? sys.chrome = s1 :(s = ua.match(/opera.*version/(d.+)/) ? sys.opera = s1 :(s = ua.match(/version/(d.+).*safari/) ? sys.safari = s1 : 0;)();*/DOM加载function appendDomLoaded(fn) var isReady = false; var timer = null; function doReady() fn(); if(timer) clearInterval(timer); isReady = true; if(isReady) return; if(sys.webkit&sys.webkit525)|(sys.firefox&sys.firefox3)|(sys.opera&sys.opera5) /低版本浏览器仿DOMContentLoaded事件 t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论