DDR爱好者之家 Design By 杰米
本文实例为大家分享了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' "top": window.pageYOffset, "left": window.pageXOffset } }else if(document.compatMode === 'CSS1Compat'){ // W3C return { "top": document.documentElement.scrollTop, "left": document.documentElement.scrollLeft } } return { "top": 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.compatMode === '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) "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 / (60*60)), "min" : Math.floor(second % (60*60) / 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);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
2024年11月24日
2024年11月24日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]