前端开发中最常用的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.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(); });
阻止冒泡
// 原生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(); });
鼠标滚轮事件
$('#content').on("mousewheel DOMMouseScroll", function (event) { // chrome & ie || // firefoxvar 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
function isSupportSVG() { var SVG_NS = 'http://www.w3.org/2000/svg';return !!document.createElementNS &&!!document.createElementNS(SVG_NS, 'svg').createSVGRect; } // 测试 console.log(isSupportSVG());
检测浏览器是否支持canvas
function isSupportCanvas() {if(document.createElement('canvas').getContext){return true;}else{return false;} }// 测试,打开谷歌浏览器控制台查看结果 console.log(isSupportCanvas());
检测是否是微信浏览器
function isWeiXinClient() {var ua = navigator.userAgent.toLowerCase(); if (ua.match(/MicroMessenger/i)=="micromessenger") { return true; } else { return false; } }// 测试 alert(isWeiXinClient());
jQuery 获取鼠标在图片上的坐标
$('#myImage').click(function(event){//获取鼠标在图片上的坐标 console.log('X:' + event.offsetX+'\n Y:' + event.offsetY); //获取元素相对于页面的坐标 console.log('X:'+$(this).offset().left+'\n Y:'+$(this).offset().top); });
验证码倒计时代码
<!-- dom --> <input id="send" type="button" value="发送验证码">
// 原生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); }
// 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); });
常用的一些正则表达式
//匹配字母、数字、中文字符 /^([A-Za-z0-9]|[\u4e00-\u9fa5])*$///验证邮箱 /^\w+@([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时间戳、毫秒格式化
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个字符)
<input id="txt" type="text">
//字符串截取 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判断是否移动端及浏览器内核
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('移动端'); }
之前我用过一个检测客户端的库 觉得挺好用的,也推荐给大家 叫 device.js,大家可以 Googel 或 百度
GItHub仓库地址:https://github.com/matthewhudson/device.js
getBoundingClientRect() 获取元素位置
//它返回一个对象,其中包含了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全屏
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);
转载于:https://www.cnblogs.com/lzm1989/p/5998605.html
前端开发中最常用的JS代码片段相关推荐
- 前端:分享一些实用的JS代码片段
今天给大家分享一些实用的JS代码片段,有需要的朋友欢迎收藏! 1.获取浏览器的版本 function getBrowser() {var UserAgent = navigator.userAgent ...
- 分享.NET开发中经常使用到的代码片段 完全从实际项目中提取出来,也可被反反复复的重复借用...
几年前,一篇<ASP.NET开发人员经常使用的三十三种代码>非常流行,它总结了一些经常在ASP.NET开发中使用到的代码,直接可以拿来使用.今天重读这篇文章,有感而发,善于总结也是进步,于 ...
- 127个常用的JS代码片段,每段代码花30秒就能看懂(六)
大家好,今天我继续给大家分享本系列文章的最后一部分,感谢你对本系列文章的持续关注,希望对你的日常工作有所帮助. 106.shuffle 使用 Fisher–Yates shuffle 洗牌算法对数组的 ...
- 100个常用的 JS 代码片段分享,值得你收藏
实现字符串长度截 function cutstr(str, len) { var temp; var icount = 0; var patrn = / ...
- jsp/html开发中常用的JS代码和页面特效代码
1.jsp/html开发中常用的JS代码 1.后退 前进 <input type="button" value="后退" onClick="hi ...
- 前端开发中常用设计模式-总结篇
本文是向大家介绍前端开发中常用的设计模式,它使我们编写的代码更容易被复用,也更容易被人理解,并且保证代码的稳定可靠性. 1.什么是设计模式 通俗来讲,就是日常使用设计的一种惯性思维. 因为对应的这种思 ...
- 【repost】一探前端开发中的JS调试技巧
有请提示:文中涉及较多Gif演示动画,移动端请尽量在Wifi环境中阅读 前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问 ...
- 前端开发中JS调试技巧,你知道几种?用过几种?
调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问题.降低故障概率.帮助分析逻辑错误等等.而在互联网前端开发越来越重要的今天,如 ...
- 前端屏幕尺寸和分辨率_web前端开发中常用的尺寸和位置
我们在日常web前端开发过程中,会经常用到各种尺寸和位置.通常是js做动画的时候.轮播图,滚屏动画,粒子,碰撞检测,拖拽,滚动加载等等.这里我将常用的尺寸和位置的获取进行总结,不包括canvas,SV ...
- 一探前端开发中的JS调试技巧
转自:http://seejs.me/2016/03/27/%E3%80%90%E5%8E%9F%E5%88%9B%E3%80%91%E4%B8%80%E6%8E%A2%E5%89%8D%E7%AB% ...
最新文章
- 研究能力培养的阶梯: 盐趣一对一科研项目
- “放到桌面”的Servlet实现
- 异或方式找到一组数组中不重复的两个数(同班同学方法)
- 【译】Jumping into Solidity —The ERC721 Standard (Part 1)
- Spring 3整合Quartz 2实现定时任务三:动态暂停 恢复 修改和删除任务
- 使用maven开发javaweb项目
- ubuntu设置打开主目录(home文件夹)的快捷键
- linux编译c文件for循环,Linux C 循环队列的实现
- 配置ArcGIS Server使用Windows AD Windows集成身份认证
- 筛选索引--filter indexs
- C++使用技巧(二十一):makefile编写
- 银行客户用户画像_大数据精准营销用户画像是核心-金融业大数据用户画像实践...
- 【python】rank函数
- 【HTML 5】HTML5 Canvas rect(), strokeRect() 和 fillRect() 的区别
- 叔叔阿姨,我真的不会修电脑
- 菜鸟打印自定义区域设置
- L. Ray in the tube(思维暴力)
- 第12节 html创建热点区域 链接
- python爬取股票网站的历史周价格
- PPT的那些事儿(趣资源)