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 相关文章推荐
prototype与jquery下Ajax实现的差别
Sep 13 Javascript
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
Oct 31 Javascript
jquery ajax 同步异步的执行 return值不能取得的解决方案
Jan 08 Javascript
javascript学习笔记(十九) 节点的操作实现代码
Jun 20 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
Jan 23 Javascript
node.js中的favicon.ico请求问题处理
Dec 15 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
Aug 31 Javascript
Node.js 应用跑得更快 10 个技巧
Apr 03 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
Dec 27 Javascript
详解如何在微信小程序中愉快地使用sass
Jul 30 Javascript
怎么使用javascript深度拷贝一个数组
Jun 06 Javascript
VUE前后端学习tab写法实例
Aug 06 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中集成PayPal标准支付的实现方法分享
2012/02/06 PHP
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
PHP设置进度条的方法
2015/07/08 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
2015/08/18 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
jQuery的css()方法用法实例
2014/12/24 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
bootstrap suggest搜索建议插件使用详解
2017/03/25 Javascript
ECMAScript6--解构
2017/03/30 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
JS基于开关思想实现的数组去重功能【案例】
2019/02/18 Javascript
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
解析Python中while true的使用
2015/10/13 Python
Python使用pyh生成HTML文档的方法示例
2018/03/10 Python
解析Python的缩进规则的使用
2019/01/16 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
keras:model.compile损失函数的用法
2020/07/01 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
基于Python实现天天酷跑功能
2021/01/06 Python
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
介绍一下Java中的static关键字
2012/05/12 面试题
安全检查管理制度
2014/02/02 职场文书
经理助理岗位职责
2014/03/05 职场文书
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
优秀食品类广告词
2014/03/19 职场文书
高三学生评语大全
2014/04/25 职场文书
奥巴马竞选演讲稿
2014/05/15 职场文书
2014高考励志标语
2014/06/05 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
react合成事件与原生事件的相关理解
2021/05/13 Javascript
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
2021/06/04 Oracle