五年干货分享!前端开发中最常用的JS代码片段

很多网友私信我,说学到js就开始卡壳了,甚至初略的看了一下js,就跳过开始学习框架之类的。这里要提醒你,js是前端的重中之重,如果你忽视了,后果不堪设想!

学好,并熟练的运用这门编程语言真的很难吗?本篇文章为大家总结了一些前端开发中最常用的JS代码片段,希望能对大家的学习以及工作上都能有所帮助,有所收获。

HTML5 DOM 选择器

javascript 代码

// querySelector() 返回匹配到的第一个元素
var item = document.querySelector(‘.item‘);
console.log(item);

// querySelectorAll() 返回匹配到的所有元素,是一个nodeList集合
var items = document.querySelectorAll(‘.item‘);
console.log(items[0]);

阻止默认行为

javascript 代码

// 原生js
document.getElementById(‘btn‘).addEventListener(‘click‘, function (event) {
    event = event || window.event;

    if (event.preventDefault){
        // w3c方法 阻止默认行为
        event.preventDefault();
    } else{
        // ie 阻止默认行为
        event.returnValue = false;
    }
}, false);

// jQuery
$(‘#btn‘).on(‘click‘, function (event) {
    event.preventDefault();
});

阻止冒泡

javascript 代码

// 原生js
document.getElementById(‘btn‘).addEventListener(‘click‘, function (event) {
    event = event || window.event;

    if (event.stopPropagation){
        // w3c方法 阻止冒泡
        event.stopPropagation();
    } else{
        // ie 阻止冒泡
        event.cancelBubble = true;
    }
}, false);

// jQuery
$(‘#btn‘).on(‘click‘, function (event) {
    event.stopPropagation();
});

鼠标滚轮事件

javascript 代码

$(‘#content‘).on("mousewheel DOMMouseScroll", function (event) {
    // chrome & ie || // firefox
    var delta = (event.originalEvent.wheelDelta && (event.originalEvent.wheelDelta > 0 ? 1 : -1)) || (event.originalEvent.detail && (event.originalEvent.detail > 0 ? -1 : 1));  

    if (delta > 0) {
        // 向上滚动
        console.log(‘mousewheel top‘);
    } else if (delta < 0) {
        // 向下滚动
        console.log(‘mousewheel bottom‘);
    }
});

检测浏览器是否支持svg

javascript 代码

function isSupportSVG() {
    var SVG_NS = ‘http://www.w3.org/2000/svg‘;
    return !!document.createElementNS &&!!document.createElementNS(SVG_NS, ‘svg‘).createSVGRect;
} 

// 测试
console.log(isSupportSVG());

检测浏览器是否支持canvas

javascript 代码

function isSupportCanvas() {
    if(document.createElement(‘canvas‘).getContext){
        return true;
    }else{
        return false;
    }
}

// 测试,打开谷歌浏览器控制台查看结果
console.log(isSupportCanvas());

检测是否是微信浏览器

javascript 代码

function isWeiXinClient() {
    var ua = navigator.userAgent.toLowerCase();
    if (ua.match(/MicroMessenger/i)=="micromessenger") {
        return true;
    } else {
        return false;
    }
}

// 测试
alert(isWeiXinClient());

jQuery 获取鼠标在图片上的坐标

javascript 代码

$(‘#myImage‘).click(function(event){
    //获取鼠标在图片上的坐标
    console.log(‘X:‘ + event.offsetX+‘\n Y:‘ + event.offsetY); 

    //获取元素相对于页面的坐标
    console.log(‘X:‘+$(this).offset().left+‘\n Y:‘+$(this).offset().top);
});

验证码倒计时代码

html 代码

<!-- dom -->
<input id="send" type="button" value="发送验证码">

javascript 代码

// 原生js版本
var times = 60, // 临时设为60秒
    timer = null;

document.getElementById(‘send‘).onclick = function () {
    // 计时开始
    timer = setInterval(function () {
        times--;

        if (times <= 0) {
            send.value = ‘发送验证码‘;
            clearInterval(timer);
            send.disabled = false;
            times = 60;
        } else {
            send.value = times + ‘秒后重试‘;
            send.disabled = true;
        }
    }, 1000);
}

javascript 代码

// jQuery版本
var times = 60,
    timer = null;

$(‘#send‘).on(‘click‘, function () {
    var $this = $(this);

    // 计时开始
    timer = setInterval(function () {
        times--;

        if (times <= 0) {
            $this.val(‘发送验证码‘);
            clearInterval(timer);
            $this.attr(‘disabled‘, false);
            times = 60;
        } else {
            $this.val(times + ‘秒后重试‘);
            $this.attr(‘disabled‘, true);
        }
    }, 1000);
});

常用的一些正则表达式

javascript 代码

//匹配字母、数字、中文字符
/^([A-Za-z0-9]|[\u4e00-\u9fa5])*$/ 

//验证邮箱
/^\[email protected]([0-9a-zA-Z]+[.])+[a-z]{2,4}$/ 

//验证手机号
/^1[3|5|8|7]\d{9}$/ 

//验证URL
/^http:\/\/.+\./

//验证×××号码
/(^\d{15}$)|(^\d{17}([0-9]|X|x)$)/ 

//匹配中文字符的正则表达式
/[\u4e00-\u9fa5]/ 

//匹配双字节字符(包括汉字在内)
/[^\x00-\xff]/

js时间戳、毫秒格式化

javascript 代码

function formatDate(now) {
    var y = now.getFullYear();
    var m = now.getMonth() + 1; // 注意js里的月要加1
    var d = now.getDate();
    var h = now.getHours();
    var m = now.getMinutes();
    var s = now.getSeconds();

    return y + "-" + m + "-" + d + " " + h + ":" + m + ":" + s;
} 

var nowDate = new Date(2016, 5, 13, 19, 18, 30, 20);

console.log(nowDate.getTime()); // 获得当前毫秒数: 1465816710020
console.log(formatDate(nowDate));

js限定字符数(注意:一个汉字算2个字符)

html 代码

<input id="txt" type="text">

javascript 代码

//字符串截取
function getByteVal(val, max) {
    var returnValue = ‘‘;
    var byteValLen = 0;
    for (var i = 0; i < val.length; i++) {
        if (val[i].match(/[^\x00-\xff]/ig) != null) byteValLen += 2; else byteValLen += 1;
        if (byteValLen > max) break;
        returnValue += val[i];
    }
    return returnValue;
}

$(‘#txt‘).on(‘keyup‘, function () {
    var val = this.value;
    if (val.replace(/[^\x00-\xff]/g, "**").length > 14) {
        this.value = getByteVal(val, 14);
    }
});

js判断是否移动端及浏览器内核

javascript 代码

var browser = {
    versions: function() {
        var u = navigator.userAgent;
        return {
            trident: u.indexOf(‘Trident‘) > -1, //IE内核
            presto: u.indexOf(‘Presto‘) > -1, //opera内核
            webKit: u.indexOf(‘AppleWebKit‘) > -1, //苹果、谷歌内核
            gecko: u.indexOf(‘Firefox‘) > -1, //火狐内核Gecko
            mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
            ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios
            android: u.indexOf(‘Android‘) > -1 || u.indexOf(‘Linux‘) > -1, //android
            iPhone: u.indexOf(‘iPhone‘) > -1 , //iPhone
            iPad: u.indexOf(‘iPad‘) > -1, //iPad
            webApp: u.indexOf(‘Safari‘) > -1 //Safari
        };
    }
} 

if (browser.versions.mobile() || browser.versions.ios() || browser.versions.android() || browser.versions.iPhone() || browser.versions.iPad()) {
    alert(‘移动端‘);
}

getBoundingClientRect() 获取元素位置

javascript 代码

//它返回一个对象,其中包含了left、right、top、bottom四个属性
var myDiv = document.getElementById(‘myDiv‘);
var x = myDiv.getBoundingClientRect().left;
var y = myDiv.getBoundingClientRect().top; 

// 相当于jquery的: $(this).offset().left、$(this).offset().top // js的:this.offsetLeft、this.offsetTop

HTML5全屏

javascript 代码

function fullscreen(element) {
    if (element.requestFullscreen) {
        element.requestFullscreen();
    } else if (element.mozRequestFullScreen) {
        element.mozRequestFullScreen();
    } else if (element.webkitRequestFullscreen) {
        element.webkitRequestFullscreen();
    } else if (element.msRequestFullscreen) {
        element.msRequestFullscreen();
    }
}

fullscreen(document.documentElement);

原文地址:http://blog.51cto.com/14197670/2349285

时间: 2024-08-27 06:55:24

五年干货分享!前端开发中最常用的JS代码片段的相关文章

前端开发中最常用的JS代码片段

HTML5 DOM 选择器 // querySelector() 返回匹配到的第一个元素 var item = document.querySelector('.item'); console.log(item); // querySelectorAll() 返回匹配到的所有元素,是一个nodeList集合 var items = document.querySelectorAll('.item'); console.log(items[0]); 阻止默认行为 // 原生js document.

网页中最常用的JS代码(js禁止右键、禁止复制,设为首页,加入收藏代码)

<body oncontextmenu=”return false”></body> <!– 禁用右键: –> <script> function stop(){ return false; } document.oncontextmenu=stop; </script> <body onselectstart=”return false”> 取消选取.防止复制 oncopy=”return false;” oncut=”return

网页中最常用的JS代码(js禁止右键、禁止复制)

<body oncontextmenu="return false"></body> <!– 禁用右键: –><script>function stop(){return false;}document.oncontextmenu=stop;</script> <body onselectstart="return false"> 取消选取.防止复制 oncopy="return fa

WEB前端开发中的图片压缩

web前端开发中,图片的重要性不言而喻,而由于一些图片的大小加上现在国内的网速不给力等种种原因,我们非常有必要对网站使用的图片进行压缩,压缩图片必然会带来图片质量的损失,我们要尽可能的在质量降低很小的情况下压缩图片,以便让网站更快的加载,提高用户体验度. 我在工作中,压缩图片用到了三个方法,分享给大家: 一.使用windows自带的画图工具 1.使用画图工具打开想要压缩的图片:2.什么都不用做,直接另存为你想要的图片格式,你会发现它比源文件小了很多,而且质量看不出来损失. 这个方法简单,快捷,压

前端开发中务必要转义的三处场景

出于这样或那样的原因,我们在传输.存储.展现字符串时需要进行转义操作,防止不可控的事情发生.下面我将分三处场景描述,有的里边确实有坑,希望大家看完后都有所收获.欢迎积极留言补充. 场景1:使用URL 前端开发中,我们经常会使用到URL,比如博客查询的表单action:"http://eastme.me?q=前端".Ajax发送Get\Post请求.跳转至网址:"http://www.eastme.me/个人简介"等等.这些请求的URL经常会出现汉字,尤其是当表单提交

前端开发中的Error以及异常捕获

本文首发于公众号:符合预期的CoyPan 写在前面 在前端项目中,由于JavaScript本身是一个弱类型语言,加上浏览器环境的复杂性,网络问题等等,很容易发生错误.做好网页错误监控,不断优化代码,提高代码健壮性是一项很重要的工作.本文将从Error开始,讲到如何捕获页面中的异常.文章较长,细节较多,请耐心观看. 前端开发中的Error JavaScript中的Error JavaScript中,Error是一个构造函数,通过它创建一个错误对象.当运行时错误产生时,Error的实例对象会被抛出.

一探前端开发中的JS调试技巧

前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问题.降低故障概率.帮助分析逻辑错误等等.而在互联网前端开发越来越重要的今天,如何在前端开发中降低开发成本,提升工作效率,掌握前端开发调试技巧尤为重要. 本文将一一讲解各种前端JS调试技巧,也许你已经熟练掌握,那让我们一起来温习,也许有你没见过的方法,不妨一起来学习,也许你尚不知如何调试,赶紧趁此机会填补空白. 骨灰级调试大师Alert 那还是互联网刚刚起步的时代,网页前

关于前端开发中的“收口”思想

什么是收口 所谓条条大路通罗马,但如果让我来设计通向罗马的各种大路,我至少会做两件事情: ① 让罗马只有一个入口 ② 让罗马只有一个出口 这样做的好处是,无论你路从哪来,我可以统一在入口处给你打上各种标志,我也可以在你离开罗马时给你留点纪念.当然罗马自然不只一个出口入口,但是每个出口入口一定有一套相同的规定,否则就会出问题. 具体到当今的工作场景,高速公路又是一个收口的好例子,进入高速公路时候得经过收费站做点标志,离开时候也会做点操作,如果没有这种收口,不论是缴费工作,流量统计或者其他都是无法统

前端开发中的JS调试技巧

前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问题.降低故障概率.帮助分析逻辑错误等等.而在互联网前端开发越来越重要的今天,如何在前端开发中降低开发成本,提升工作效率,掌握前端开发调试技巧尤为重要. 本文将一一讲解各种前端JS调试技巧,也许你已经熟练掌握,那让我们一起来温习,也许有你没见过的方法,不妨一起来学习,也许你尚不知如何调试,赶紧趁此机会填补空白. 骨灰级调试大师Alert 那还是互联网刚刚起步的时代,网页前