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代码片段相关推荐

  1. 前端:分享一些实用的JS代码片段

    今天给大家分享一些实用的JS代码片段,有需要的朋友欢迎收藏! 1.获取浏览器的版本 function getBrowser() {var UserAgent = navigator.userAgent ...

  2. 分享.NET开发中经常使用到的代码片段 完全从实际项目中提取出来,也可被反反复复的重复借用...

    几年前,一篇<ASP.NET开发人员经常使用的三十三种代码>非常流行,它总结了一些经常在ASP.NET开发中使用到的代码,直接可以拿来使用.今天重读这篇文章,有感而发,善于总结也是进步,于 ...

  3. 127个常用的JS代码片段,每段代码花30秒就能看懂(六)

    大家好,今天我继续给大家分享本系列文章的最后一部分,感谢你对本系列文章的持续关注,希望对你的日常工作有所帮助. 106.shuffle 使用 Fisher–Yates shuffle 洗牌算法对数组的 ...

  4. 100个常用的 JS 代码片段分享,值得你收藏

    实现字符串长度截 function cutstr(str, len) {         var temp;         var icount = 0;         var patrn = / ...

  5. jsp/html开发中常用的JS代码和页面特效代码

    1.jsp/html开发中常用的JS代码 1.后退 前进 <input type="button" value="后退" onClick="hi ...

  6. 前端开发中常用设计模式-总结篇

    本文是向大家介绍前端开发中常用的设计模式,它使我们编写的代码更容易被复用,也更容易被人理解,并且保证代码的稳定可靠性. 1.什么是设计模式 通俗来讲,就是日常使用设计的一种惯性思维. 因为对应的这种思 ...

  7. 【repost】一探前端开发中的JS调试技巧

    有请提示:文中涉及较多Gif演示动画,移动端请尽量在Wifi环境中阅读 前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问 ...

  8. 前端开发中JS调试技巧,你知道几种?用过几种?

    调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问题.降低故障概率.帮助分析逻辑错误等等.而在互联网前端开发越来越重要的今天,如 ...

  9. 前端屏幕尺寸和分辨率_web前端开发中常用的尺寸和位置

    我们在日常web前端开发过程中,会经常用到各种尺寸和位置.通常是js做动画的时候.轮播图,滚屏动画,粒子,碰撞检测,拖拽,滚动加载等等.这里我将常用的尺寸和位置的获取进行总结,不包括canvas,SV ...

  10. 一探前端开发中的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% ...

最新文章

  1. 研究能力培养的阶梯: 盐趣一对一科研项目
  2. “放到桌面”的Servlet实现
  3. 异或方式找到一组数组中不重复的两个数(同班同学方法)
  4. 【译】Jumping into Solidity —The ERC721 Standard (Part 1)
  5. Spring 3整合Quartz 2实现定时任务三:动态暂停 恢复 修改和删除任务
  6. 使用maven开发javaweb项目
  7. ubuntu设置打开主目录(home文件夹)的快捷键
  8. linux编译c文件for循环,Linux C 循环队列的实现
  9. 配置ArcGIS Server使用Windows AD Windows集成身份认证
  10. 筛选索引--filter indexs
  11. C++使用技巧(二十一):makefile编写
  12. 银行客户用户画像_大数据精准营销用户画像是核心-金融业大数据用户画像实践...
  13. 【python】rank函数
  14. 【HTML 5】HTML5 Canvas rect(), strokeRect() 和 fillRect() 的区别
  15. 叔叔阿姨,我真的不会修电脑
  16. 菜鸟打印自定义区域设置
  17. L. Ray in the tube(思维暴力)
  18. 第12节 html创建热点区域 链接
  19. python爬取股票网站的历史周价格
  20. PPT的那些事儿(趣资源)

热门文章

  1. python网页教程_python 查询 网页Python基础教程01 Hello World!
  2. 收音机磁棒天线4根接法_五六十年代不需要电的收音机,你见过吗?
  3. Go语言 通过文件流判断文件头来识别文件类型
  4. “英伦配”收视牛过本山,网管软件如何配奇兵
  5. 线性代数与矩阵论 定理 1.3.9 唯一析因定理
  6. 设为首页 和 收藏本页
  7. 【相机标定系列】单目相机,内参,外参
  8. Ubuntu:conda的安装与使用
  9. for update引发了血案
  10. 算法8-排序-基数排序