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 相关文章推荐
将光标定位于输入框最右侧实现代码
Dec 04 Javascript
JavaScript实现表格点击排序的方法
May 11 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
Jan 14 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
Mar 14 Javascript
jQuery实现可展开折叠的导航效果示例
Sep 12 Javascript
JS通过调用微信API实现微信支付功能的方法示例
Jun 29 Javascript
vue.js如何更改默认端口号8080为指定端口的方法
Jul 14 Javascript
js实现HTML中Select二级联动的实例
Jan 05 Javascript
微信小程序自定义select下拉选项框组件的实现代码
Aug 28 Javascript
vue-router源码之history类的浅析
May 21 Javascript
泛谈JS逻辑判断选择器 || &&
May 24 Javascript
jQuery实现html可联动的百分比进度条
Mar 26 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代码质量36计
2012/09/05 PHP
如何利用http协议发布博客园博文评论
2015/08/03 PHP
PHP串行化与反串行化实例分析
2016/12/27 PHP
php常用数组函数实例小结
2016/12/29 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
jquery异步循环获取功能实现代码
2010/09/19 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
jquery实现经典的淡入淡出选项卡效果代码
2015/09/22 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
2015/11/29 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
2019/07/25 jQuery
全面解析Vue中的$nextTick
2020/12/24 Vue.js
Python修改Excel数据的实例代码
2013/11/01 Python
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
Python线程池模块ThreadPoolExecutor用法分析
2018/12/28 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
澳大利亚领先的在线药房:Pharmacy Online(有中文站)
2020/02/22 全球购物
CHRONEXT英国:您的首选奢华腕表目的地
2020/03/30 全球购物
计算机应用与科学个人的自我评价
2013/11/15 职场文书
写自荐信三大法宝
2014/01/24 职场文书
毕业大学生自荐信
2014/06/17 职场文书
教师拔河比赛广播稿
2014/10/14 职场文书
父亲节活动总结
2015/02/12 职场文书
六一亲子活动感想
2015/08/07 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python
mysql 8.0.24 安装配置方法图文教程
2021/05/12 MySQL
SpringBoot整合RabbitMQ的5种模式实战
2021/08/02 Java/Android
pt-archiver 主键自增
2022/04/26 MySQL
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技