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)
Apr 25 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
Jun 02 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
Nov 06 Javascript
node.js中Socket.IO的进阶使用技巧
Nov 04 Javascript
javascript实现切换td中的值
Dec 05 Javascript
js实现带圆角的多级下拉菜单效果
Aug 28 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
Sep 19 Javascript
js实现碰撞检测特效代码分享
Oct 16 Javascript
Javascript仿京东放大镜的效果
Mar 01 Javascript
深入浅析vue组件间事件传递
Dec 29 Javascript
对Angular中单向数据流的深入理解
Mar 31 Javascript
Javascript和jquery在selenium的使用过程
Oct 31 jQuery
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将数据库导出成excel的方法
2010/05/07 PHP
smarty高级特性之过滤器的使用方法
2015/12/25 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
php 数据结构之链表队列
2017/10/17 PHP
Nigma vs Alliance BO5 第一场2.14
2021/03/10 DOTA
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
javascript验证身份证号
2015/03/03 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
2016/06/02 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
vue路由嵌套的SPA实现步骤
2017/11/06 Javascript
小程序实现自定义导航栏适配完美版
2019/04/02 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
JavaScript隐式类型转换代码实例
2020/05/29 Javascript
[03:15]2014DOTA2国际邀请赛 专访国士无双信心满满
2014/07/12 DOTA
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
python使用mysqldb连接数据库操作方法示例详解
2013/12/03 Python
Python正则表达式完全指南
2017/05/25 Python
windows下Virtualenvwrapper安装教程
2017/12/13 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
俄罗斯达美乐比萨外送服务:Domino’s Pizza
2020/12/18 全球购物
公休请假条
2014/04/11 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
初中思想品德教学反思
2016/02/24 职场文书
Redis官方可视化工具RedisInsight安装使用教程
2022/04/19 Redis