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对象之内置对象Math使用方法
Apr 16 Javascript
jquery easyui combobox模糊过滤(示例代码)
Nov 30 Javascript
jQuery中bind与live的用法及区别小结
Jan 27 Javascript
关于javascript模块加载技术的一些思考
Nov 28 Javascript
JS中prototype的用法实例分析
Mar 19 Javascript
javascript实现九宫格相加数值相等
May 28 Javascript
如何检测JavaScript的各种类型
Jul 30 Javascript
jQuery事件与动画基础详解
Feb 23 Javascript
AngularJS常见过滤器用法实例总结
Jul 06 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
Aug 25 Javascript
layui实现数据表格点击搜索功能
Mar 26 Javascript
javascript实现文字跑马灯效果
Jun 18 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环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
2006/11/17 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
2015/04/27 PHP
浅谈PHP正则中的捕获组与非捕获组
2016/07/18 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
PHP接入微信H5支付的方法示例
2019/10/28 PHP
javascript 数组排序函数
2009/08/20 Javascript
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
jquery里的each使用方法详解
2010/12/22 Javascript
jquery实现图片左右间隔滚动特效(可自动播放)
2013/05/08 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
js控制容器隐藏出现防止样式变化的两种方法
2014/04/25 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
2015/03/03 Javascript
详解JavaScript中基于原型prototype的继承特性
2016/05/05 Javascript
jQuery Dialog 取消右上角删除按钮事件
2016/09/07 Javascript
Angular2 环境配置详细介绍
2016/09/21 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
详解vue-video-player使用心得(兼容m3u8)
2019/08/23 Javascript
JS自定义滚动条效果
2020/03/13 Javascript
[01:09:24]Ti4开幕式
2014/07/19 DOTA
python插入排序算法的实现代码
2013/11/21 Python
Python复数属性和方法运算操作示例
2017/07/21 Python
python使用Tesseract库识别验证
2018/03/21 Python
python对list中的每个元素进行某种操作的方法
2018/06/29 Python
Python单元测试简单示例
2018/07/03 Python
python pyinstaller打包exe报错的解决方法
2019/11/02 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2020/03/20 Python
Python使用jupyter notebook查看ipynb文件过程解析
2020/06/02 Python
美国女士内衣在线折扣商店:One Hanes Place
2019/03/24 全球购物
车间组长岗位职责
2013/12/20 职场文书
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
公安个人四风问题对照检查及整改措施
2014/10/28 职场文书
python+opencv实现目标跟踪过程
2022/06/21 Python