JavaScript常用脚本汇总(三)


Posted in Javascript onMarch 04, 2015

通过数组,拓展字符串拼接容易导致性能的问题

function StringBuffer() {

    this.__strings__ = new Array();

}

StringBuffer.prototype.append = function (str) {

    this.__strings__.push(str);

    return this;

}

StringBuffer.prototype.toString = function () {

    return this.__strings__.join("");

}

var buffer = new StringBuffer();

buffer.append("Hello ").append("javascript");

var result = buffer.toString();

alert(result);    //Hello javascript

代码来源:https://gist.github.com/hehongwei44/fe71f10e4d2d9295aeab

页面 视口 滚动条的位置的辅助函数

/*确定当前页面高度和宽度的两个函数*/

function pageHeight() {

    return document.body.scrollHeight;

}

function pageWidth() {

    return document.body.scrollWidth;

}

/*确定滚动条水平和垂直的位置*/

function scrollX() {

    var de = document.documentElement;

    return self.pageXOffset || (de && de.scrollLeft) || document.body.scrollLeft;

}

function scrollY() {

    var de = document.documentElement;

    return self.pageYOffset || (de && de.scrollTop) || document.body.scrollTop;

}

/*确定浏览器视口的高度和宽度的两个函数*/

function windowHeight() {

    var de = document.documentElement;

    return self.innerHeight || (de && de.clientHeight) || document.body.clientHeight;

}

function windowWidth() {

    var de = document.documentElement;

    return self.innerWidth || (de && de.clientWidth) || document.body.clientWidth;

}

代码来源:https://gist.github.com/hehongwei44/62907b9b7061d4defadb

调节元素透明度的函数

/*调节元素透明度的函数*/

function setOpacity(elem, level) {

    //IE处理透明度

    if (elem.filters) {

        elem.style.filters = 'alpha(opacity=' + level + ')';

    } else {

        elem.style.opacity = level / 100;

    }

}

代码来源:https://gist.github.com/hehongwei44/87839cd3b8439aff6a3c

获取鼠标位置的几个通用的函数

/*两个通用函数,用于获取鼠标相对于整个页面的当前位置*/

function getX(e) {

    e = e || window.event;

    return e.pageX || e.clientX + document.body.scrollLeft;

}

function getY(e) {

    e = e || window.event;

    return e.pageY || e.clientY + document.body.scrollTop;

}

/*两个获取鼠标相对于当前元素位置的函数*/

function getElementX(e) {

    return (e && e.layerX) || window.event.offsetX;

}

function getElementY(e) {

    return (e && e.layerY) || window.event.offsetY;

}

代码来源:https://gist.github.com/hehongwei44/2732365bd42baa491ef8

使用cssdisplay属性来切换元素可见性的一组函数

/**

 * 使用display来隐藏元素的函数

 * */

function hide(elem) {

    var curDisplay = getStyle(elem, 'display');
    if (curDisplay != 'none') {

        elem.$oldDisplay = curDisplay;

    }

    elem.style.display = 'none';

}

/**

 * 使用display来显示元素的函数

 * */

function show(elem) {

    elem.style.display = elem.$oldDisplay || '';

}

代码来源:https://gist.github.com/hehongwei44/b4192af8227d756bfda6

样式相关的通用函数

/**

 * 获取指定元素(elem)的样式属性(name)

 * */

function getStyle(elem, name) {

    //如果存在于style[]中,那么它已被设置了(并且是当前的)

    if (elem.style[name]) {

        return elem.style[name];

    }

    //否则,测试IE的方法

    else if (elem.currentStyle) {

        return elem.currentStyle[name];

    }

    //或者W3C的方法

    else if(document.defaultView && document.defaultView.getComputedStyle){

        name = name.replace(/(A-Z)/g, "-$1");

        name = name.toLowerCase();

        var s = document.defaultView.getComputedStyle(elem, "");

        return s && s.getPropertyValue(name);

    }

    //否则,用户使用的是其他浏览器

    else {

        return null;

    }

}

代码来源:https://gist.github.com/hehongwei44/9abf63536accd0f2eeb7

获取元素当前的高度和宽度

/**

 * 获取元素的真实高度

 * 依赖的getStyle见上面的函数。

 * */

function getHeight(elem) {

    return parseInt(getStyle(elem, 'height'));

}

/**

 * 获取元素的真实宽度

 * 依赖的getStyle见上面的函数

 * */

function getWidth(elem) {

    return parseInt(getStyle(elem, 'width'));

}

代码来源:https://gist.github.com/hehongwei44/b524ff25991d99625eb2

以上就是本文分享的javascript常用脚本了,希望大家能够喜欢。

Javascript 相关文章推荐
ASP.NET中基于JQUERY的高性能的TreeView补充
Feb 23 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
Sep 13 Javascript
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
Mar 01 Javascript
ie中js创建checkbox默认选中问题探讨
Oct 21 Javascript
jQuery实现一个简单的验证码功能
Jun 26 jQuery
React服务端渲染(总结)
Jul 01 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
Sep 11 Javascript
微信小程序模拟cookie的实现
Jun 20 Javascript
了解JavaScript函数中的默认参数
May 30 Javascript
JS图片懒加载技术实现过程解析
Jul 27 Javascript
vue 图片裁剪上传组件的实现
Nov 12 Javascript
如何在Express4.x中愉快地使用async的方法
Nov 18 Javascript
JavaScript常用脚本汇总(二)
Mar 04 #Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
Mar 04 #Javascript
JavaScript常用脚本汇总(一)
Mar 04 #Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
Mar 04 #Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
Mar 04 #Javascript
JavaScript中的关联数组问题
Mar 04 #Javascript
JavaScript中常见获取元素的方法汇总
Mar 04 #Javascript
You might like
PHP的ASP防火墙
2006/10/09 PHP
php Ajax乱码
2008/04/09 PHP
php学习笔记之 函数声明(二)
2011/06/09 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
php使用正则表达式获取字符串中的URL
2016/12/29 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
javascript 面向对象编程基础:继承
2009/08/21 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
关于js遍历表格的实例
2013/07/10 Javascript
js获取url参数值的两种方式
2013/09/10 Javascript
JSONP获取Twitter和Facebook文章数的具体步骤
2014/02/24 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
关于JS中prototype的理解
2015/09/07 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
Vue.js组件通信的几种姿势
2017/10/23 Javascript
react学习笔记之state以及setState的使用
2017/12/07 Javascript
vue将单页面改造成多页面应用的方法
2018/11/25 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
Python正则表达式匹配HTML页面编码
2015/04/08 Python
Python中subprocess模块用法实例详解
2015/05/20 Python
python ddt实现数据驱动
2018/03/14 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
2018/07/18 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
在PyCharm中批量查找及替换的方法
2019/01/20 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
PowerBI和Python关于数据分析的对比
2019/07/11 Python
pandas实现导出数据的四种方式
2020/12/13 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
论文指导教师评语
2014/04/28 职场文书
九一八事变演讲稿
2014/09/05 职场文书
丽江古城导游词
2015/02/03 职场文书
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js