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 树控件 比较好用
Jun 11 Javascript
js 实现浏览历史记录示例
Apr 20 Javascript
简单谈谈node.js 版本控制 nvm和 n
Oct 15 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
Sep 27 Javascript
微信小程序 开发经验整理
Feb 15 Javascript
详解vue+vuex+koa2开发环境搭建及示例开发
Jan 22 Javascript
vue.js中npm安装教程图解
Apr 10 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
Jan 15 Javascript
JS实现简单的抽奖转盘效果示例
Feb 16 Javascript
VUE脚手架具体使用方法
May 20 Javascript
element-ui表格合并span-method的实现方法
May 21 Javascript
JS访问对象两种方式区别解析
Aug 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
php网站判断用户是否是手机访问的方法
2013/11/01 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
2015/12/17 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
详解php实现页面静态化原理
2017/06/21 PHP
php使用Swoole实现毫秒级定时任务的方法
2020/09/04 PHP
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
js CSS操作方法集合
2008/10/31 Javascript
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
2010/04/01 Javascript
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
JavaScript中Function详解
2015/02/27 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
详解JS数值Number类型
2018/02/07 Javascript
微信小程序wx.request拦截器使用详解
2019/07/09 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
2019/11/09 Javascript
[02:16]卖萌的僵尸 DOTA2神话信使飞僵小宝来袭
2014/03/24 DOTA
python创建列表并给列表赋初始值的方法
2015/07/28 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
python有序查找算法 二分法实例解析
2020/02/18 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
2020/07/13 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
2020/10/04 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
friso美素佳儿官方海外旗舰店:荷兰原产原罐
2017/07/03 全球购物
Java的五个基础面试题
2016/02/26 面试题
企业厂长岗位职责
2013/12/17 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
护士实习求职信
2014/06/22 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
房屋租赁协议书
2014/10/18 职场文书