前端设计师们最常用的JS代码汇总_javascript技巧

逛社区时看到的文章,我修改调整了内容,如果大家觉得也有帮助 可以收藏下~

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 || // 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

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);

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索javascript
, 常用代码
, 代码汇总
常用片段
javascript前端框架、javascript前端面试题、javascript 前端、前端javascript规范、javascript前端开发,以便于您获取更多的相关知识。

时间: 2024-09-28 08:00:56

前端设计师们最常用的JS代码汇总_javascript技巧的相关文章

微信中一些常用的js方法汇总_javascript技巧

1.网页图片集左右滑动查看图片,如下样例: js效果 复制代码 代码如下: var pictures = [];  angular.forEach(pitctures,function(k,i){          pictures[i] = k.imgPath;  });  $scope.previewPics = function(currentUrl){         if (typeof window.WeixinJSBridge != 'undefined') {          

项目中常用的JS方法整理_javascript技巧

验证是否为图片格式 复制代码 代码如下:  function IsImgType(src) {      var rFilter = /^(?:image\/bmp|image\/cis\-cod|image\/gif|image\/ief|image\/jpeg|image\/jpeg|image\/jpeg|image\/pipeg|image\/png|image\/svg\+xml|image\/tiff|image\/x\-cmu\-raster|image\/x\-cmx|image

如何编写高质量JS代码(续)_javascript技巧

继续上一篇文章<如何编写高质量JS代码>今次整理一下javascript函数知识点. 2.使用函数 函数给程序员提供了主要的抽象功能,又提供实现机制.函数可以独立实现其他语言中的多个不同的特性,例如,过程.方法.构造函数,甚至类或模块. 2.1 理解函数调用.方法调用以及构造函数调用之间的不同 针对面向对象编程,函数.方法和类的构造函数是三种不同的概念. 使用模式: 1,函数调用 复制代码 代码如下: function hello(username){     return "hel

移动端横屏的JS代码(beta)_javascript技巧

废话不多说了,直接给大家贴代码了 具体代码如下所示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"

同步文本框内容JS代码实现_javascript技巧

本文实例为大家分享了同步文本框内容JS代码,供大家参考,具体内容如下 图例1  <html> <body> <script language="JavaScript" type="text/javascript"> function addEvent(eventHandler) { var tags = document.getElementsByTagName('input'); for(var i=0;i<tags.le

JS倒计时代码汇总_javascript技巧

本文实例总结了常见的JS倒计时代码.分享给大家供大家参考.具体汇总如下: 第一种:精确到秒的javascript倒计时代码  HTML代码:  复制代码 代码如下: <form name="form1">  <div align="center" align="center">  <center>离2010年还有:<br>  <input type="textarea" n

TBCompressor js代码压缩_javascript技巧

TBCompressor 公司原先的JS和CSS文件都是用在线压缩程序压缩的,看似方便,但很容易出错,可能是压缩程序把CSS里面的一些Hack语句给混淆了,于是我决定用大名鼎鼎的YUI compressor. 但YUI compressor也有一个缺点,那就是操作不人性化,要用输入命令行的方式进行操作,在实际应用中也有点不方便.今天发现了淘宝人开发的一个软件--TBCompressor,这个软件是在YUI compressor的基础上改进的,使用十分简单,详情请看lifesinger的<TBCo

更靠谱的H5横竖屏检测方法(js代码)_javascript技巧

前不久,做了一个H5项目,需要在横竖屏变化时,做一些处理.毫无疑问,需要使用orientationchange来监听横竖屏的变化. 方案一: // 监听 orientation changes window.addEventListener("orientationchange", function(event) { // 根据event.orientation|screen.orientation.angle等于0|180.90|-90度来判断横竖屏 }, false); 代码添加上

EditPlus注册码生成器(js代码实现)_javascript技巧

今天同事惊奇的告诉我,说找到个在线的EditPlus注册码生成器,我赶紧去看了看,还真是,在这里. exe的注册机病毒太多,纯js的在线注册机可就放心了. 作者是从别人的注册机反汇编然后找出算法的,更令我惊奇的是,这作者Demon竟然是搞法律的,才刚拿到法律职业资格证书,佩服. 主要的一个js函数是这样的: 复制代码 代码如下: function generate_editplus_regcode(username){ var list = [0,49345,49537,320,49921,96