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 相关文章推荐
jquery插件jquery倒计时插件分享
Dec 27 Javascript
jquery ajaxSubmit 异步提交的简单实现
Feb 28 Javascript
jQuery中get和post方法传值测试及注意事项
Aug 08 Javascript
JS中实现简单Formatter函数示例代码
Aug 19 Javascript
JavaScript的jQuery库插件的简要开发指南
Aug 12 Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
Sep 23 Javascript
jQuery实现的简单提示信息插件
Dec 08 Javascript
利用Bootstrap实现表格复选框checkbox全选
Dec 21 Javascript
Bootstrap导航条学习使用(一)
Feb 08 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
Feb 26 Javascript
Swiper实现导航栏滚动效果
Oct 16 Javascript
js作用域及作用域链工作引擎
Jul 07 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
我的论坛源代码(九)
2006/10/09 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
PHP错误和异常处理功能模块示例
2016/11/12 PHP
在 Laravel 项目中使用 webpack-encore的方法
2019/07/21 PHP
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
javscript对象原型的一些看法
2010/09/19 Javascript
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
jquery判断复选框是否选中进行答题提示特效
2015/12/10 Javascript
jquery操作select元素和option的实例代码
2016/02/03 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
vue中axios的封装问题(简易版拦截,get,post)
2018/06/15 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
一文了解Vue中的nextTick
2019/05/06 Javascript
vue 设置 input 为不可以编辑的实现方法
2019/09/19 Javascript
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
Python的Django中将文件上传至七牛云存储的代码分享
2016/06/03 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
Python Socket编程之多线程聊天室
2018/07/28 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
浅谈Python 敏感词过滤的实现
2019/08/15 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
2020/01/04 Python
Python调用shell命令常用方法(4种)
2020/05/11 Python
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
测试工程师职业规划书
2014/02/06 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
MySql分区类型及创建分区的方法
2022/04/13 MySQL
使用Python拟合函数曲线
2022/04/14 Python
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
2022/06/21 Python