JavaScript工具库MyTools详解
网络编程 2021-07-04 15:02www.168986.cn编程入门
这篇文章主要为大家详细介绍了JavaScript工具库MyTools的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了JavaScript工具库MyTools,不断填充中,供大家参考,具体内容如下
MyTools.js
将功能绑定在window中,调用的时候,直接使用myToos.xxx就可以进行函数调用。
(function (w) { w.myTool = { / 根据id获取元素节点 @param {string}id 节点id @returns {any} id为id的节点 / $: function (id) { return typeof id === 'string' ? document.getElementById(id) : null; }, / 返回网页被卷去的高、网页被卷去的左 @returns {{: , left: }} 被卷去的高 left被卷去的左 / scroll: function() { if(window.pageYOffset !== null){ // 最新的浏览器 return { "": window.pageYOffset, "left": window.pageXOffset } }else if(document.patMode === 'CSS1Compat'){ // W3C return { "": document.documentElement.scrollTop, "left": document.documentElement.scrollLeft } } return { "": document.body.scrollTop, "left": document.body.scrollLeft } }, / 返回当前界面宽度和高度 @returns {{width: , height: }} width当前界面宽度 height当前界面高度 / client: function() { if(window.innerWidth !== null){ // 最新的浏览器 return { "width": window.innerWidth, "height": window.innerHeight } }else if(document.patMode === 'CSS1Compat'){ // W3C return { "width": document.documentElement.clientWidth, "height": document.documentElement.clientHeight } } return { "width": document.body.clientWidth, "height": document.body.clientHeight } }, / 检查obj元素是否的类名中是否有cs @param {Element}obj @param {string}cs @returns {boolean} true有 false无 / hasClassName: function (obj, cs) { var reg = new RegExp('\\b' + cs + '\\b'); return reg.test(obj.className); }, / 为obj添加类名cs @param {Element}obj @param {string}cs / addClassName: function (obj, cs) { if(!this.hasClassName(obj,cs)){ obj.className += ' ' + cs; } }, / 移除所有 obj的cs类 @param {Element}obj @param {string}cs / removeClassName: function (obj, cs) { var reg = new RegExp('\\b' + cs + '\\b'); // 删除class obj.className = obj.className.replace(reg, ''); }, / 对设置和移除obj元素的cs类进行切换 @param {Element}obj @param {string}cs / toggleClassName: function (obj, cs) { if(this.hasClassName(obj,cs)){ // 有, 删除 this.removeClassName(obj,cs); }else { // 没有,则添加 this.addClassName(obj,cs); } }, / 控制元素是否显示 @param {Element}ele 元素节点 / hide: function (ele) { ele.style.display = 'none' }, show: function (ele) { ele.style.display = 'block' }, / 获得某个元素的某个CSS属性 @param {Element}obj @param {string}attr @returns {string} / getCSSAttr: function (obj, attr) { if (obj.currentStyle) { // IE 和 opera return obj.currentStyle[attr]; } else { return window.getComputedStyle(obj, null)[attr]; } }, / 更改某个元素的某个CSS属性 @param {Element}eleObj @param {string}attr @param {string | number}value / setCssAttr: function (eleObj, attr, value) { eleObj.style[attr] = value; }, / 缓动动画函数 @param eleObj 要执行缓动动画的元素对象 @param json 以JSON格式传入需要改的属性 @param fn 回调函数 / slowMoving: function (eleObj, json, fn) { clearInterval(eleObj.timer); var speed = 0, begin = 0, target = 0, flag = false; eleObj.timer = setInterval(function () { flag = true; for(var key in json){ if (json.hasOwnProperty(key)){ if (key === 'opacity') { begin = parseInt(parseFloat(myTool.getCSSAttr(eleObj, key)) 100); target = parseInt(json[key] 100); } else if ('scrollTop' === key) { begin = Math.ceil(Number(eleObj.scrollTop)); target = parseInt(json[key]); } else { begin = parseInt(myTool.getCSSAttr(eleObj, key)) || 0; target = parseInt(json[key]); } speed = (target - begin) 0.2; speed = (target > begin) ? Math.ceil(speed) : Math.floor(speed); if (key === 'opacity') { eleObj.style.opacity = (begin + speed) / 100; } else if ('scrollTop' === key) { eleObj.scrollTop = begin + speed; } else if ("zIndex" === key) { eleObj.style[key] = json[key]; }else { eleObj.style[key] = begin + speed + 'px'; } if (begin !== target) { flag = false; } } } if(flag){ clearInterval(eleObj.timer); fn && fn(); } }, 100); }, / 传入总秒数返回对应小时、分钟以及秒数 @param second 总秒数 @returns {{min: number , hour: number, second: number}} / secondToHourMinSecond: function (second) { return{ "hour" : Math.floor(second / (6060)), "min" : Math.floor(second % (6060) / 60), "second" : Math.floor(second %60) } }, / 传入一个数字,如果是一位数字,前面补0.如果是两位,返回原值。 @param {number}num @returns {number} / addZero: function (num) { return num < 10 ? '0' + num : num; }, / 获取字符串真实长度,目前仅针对中文和英文字符串 @param {string}str @returns {number} / getStrLength: function (str){ var len = 0, code = 0; for (var i = 0; i < str.length; i++) { code = str.charCodeAt(i); if (code>=0 && code <= 127){ len += 1; }else{ len += 2; } } return len; } }; })(window);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程