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 相关文章推荐
JavaScript 基于原型的对象(创建、调用)
Oct 16 Javascript
jquery插件lazyload.js延迟加载图片的使用方法
Feb 19 Javascript
JavaScript Array对象扩展indexOf()方法
May 09 Javascript
js面向对象编程之如何实现方法重载
Jul 02 Javascript
js实现点击添加一个input节点
Dec 05 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
Jun 03 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
Sep 01 Javascript
js点击任意区域弹出层消失实现代码
Dec 27 Javascript
Vue框架中正确引入JS库的方法介绍
Jul 30 Javascript
教你如何用node连接redis的示例代码
Jul 12 Javascript
express.js中间件说明详解
Mar 19 Javascript
Openlayers3实现车辆轨迹回放功能
Sep 29 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
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
php检查日期函数checkdate用法实例
2015/03/19 PHP
PHP使用递归生成文章树
2015/04/21 PHP
在 PHP 和 Laravel 中使用 Traits的方法
2019/11/13 PHP
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
javascript学习笔记(八) js内置对象
2012/06/19 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
JS过滤url参数特殊字符的实现方法
2013/12/24 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
jQuery中before()方法用法实例
2014/12/25 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
深入浅析JS的数组遍历方法(推荐)
2016/06/15 Javascript
第一次接触神奇的Bootstrap导航条
2016/08/09 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
基于Require.js使用方法(总结)
2017/10/26 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
2019/05/16 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
[01:07:21]NAVI vs VG Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
Python实战小程序利用matplotlib模块画图代码分享
2017/12/09 Python
新年福利来一波之Python轻松集齐五福(demo)
2020/01/20 Python
全球高级音频和视频专家:HiDef Lifestyle
2019/08/02 全球购物
德国Discount-Apotheke中文官网:DC德式康线上药房
2020/02/18 全球购物
世界上最大的皮肤科医生拥有和经营的美容网站:LovelySkin
2021/01/03 全球购物
英文求职信结束语大全
2013/10/26 职场文书
土木工程应届生求职信
2013/10/31 职场文书
门诊挂号室室长岗位职责
2013/11/27 职场文书
期末自我鉴定
2014/02/02 职场文书
创业计划书之儿童理发店
2019/09/27 职场文书
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
mysql函数之截取字符串的实现
2022/08/14 MySQL