常用的几个小函数

用原生js实现的几个比较常用的小函数

1、产生随机色

function color(){
return   "rgb("+parseInt(Math.random()*255)+","+parseInt(Math.random()*255)+","+parseInt(Math.random()*255)+")";
}

2、添加类名、移除类名

    function hasClass(elements, cName) {
      return !!elements.className.match(new RegExp("(\\s|^)" + cName + "(\\s|$)"));
     // ( \\s|^ ) 判断前面是否有空格 (\\s | $ )判断后面是否有空格 两个感叹号为转换为布尔值 以方便做判断 
    };
   //添加类名
    function addClass(elements, cName) {
      if(!hasClass(elements,cName)) {
        elements.className += " " + cName;
     }
    }
  //移除类名
    function removeClass(elements, cName) {
     if(hasClass(elements, cName)) {
       elements.className = elements.className.replace(new RegExp("(\\s|^)" + cName + "(\\s|$)"), " ");
      //replace方法是替换 
      }
    }

3、判断某天是该年第几天

function dayOfYear(year,month,day){
   var a=[0,31,28,31,30,31,30,31,31,30,31,30,31];
   if (year%4==0&&year%100!=0||year%400==0) {
    a[2]=29;
   }
   var sum=day;
   for(var i=0;i<month;i++){
    sum+=a[i];
   }
   return sum;
  }

4、产生5个不重复的数字加入到数组中

//随机数
  function getAutoNum(max, min) {
   return parseInt(Math.random() * (max - min + 1) + min);
  }
  function lottery() {
   var arrayNum = [];
   while(arrayNum.length < 5) {
    var num=getAutoNum(23,1),i=0;
    for (;i<arrayNum.length;i++) {
     if (arrayNum[i]==num) {
      break;
     }
    }
    if (i==arrayNum.length) {
     arrayNum.push(num);
    }
   }
  return arrayNum;
  }

另一种方法

var array = [];
  for(var i = 0;; i++) {
   var num = parseInt(Math.random() * (23 - 0 + 1) + 0);
   //检验随机数是否重复
   var isRepeat = true;
   //如果重复,继续生成下一个随机数
   document.write(num + " ");
   for(var j = 0; j < array.length; j++) {
    if(array[j] == num) {
     isRepeat = false;
    }
   }
   //不重复加入到数组中
   if(isRepeat) {
    array.push(num);
   }
   if(array.length == 5) {
    break;
   }
  }

5、获取属性的数值 (去掉单位)

//获取属性的数值  eg:div.style.width的值
  function getStyle(obj,attr){
   if (obj.currentStyle) {
    return obj.currentStyle[attr];//针对IE
   } else{
//    alert(attr);
    return getComputedStyle(obj,false)[attr];//针对除IE外的浏览器
   }
  }

6、弹性摩擦运动框架

function startMove(iTarget) {
   clearInterval(timer);
   timer = setInterval(function() {
    speed+=(iTarget-div.offsetLeft)/5;
    speed*=0.7;
    //最佳组合 5和0.7;
    //摩擦力
    div.style.left = div.offsetLeft + speed + ‘px‘;
   }, 20);
  }

7、两个对象的碰撞检测

  //这个方法的使用前提是:两个对象必须有x,y,w,h属性
  function checkCrash(obj1,obj2){
   //先求临界值
   var disX=obj1.w/2
   +obj2.w/2;
   var disY=obj1.h/2
   +obj2.h/2;
   //计算两个矩形中心点的距离
   var centerX=Math.abs((obj1.x+obj1.w/2)
   -(obj2.x+obj2.w/2));
   var centerY=Math.abs((obj1.y+obj1.h/2)
   -(obj2.y+obj2.h/2));
   if (centerX<disX&&centerY<disY) {
    return true;
   }else{
    return false;
   }
  }
时间: 2024-10-10 00:20:10

常用的几个小函数的相关文章

C++编程常用头文件及其包含函数汇总

1. #include<iostream>是标准的C++头文件,任何符合标准的C++开发环境都有这个头文件. 当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现:当使用<iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std:这样才能正确使用cout.   2.#include <cstdlib>是C++里面的一个常用函数库, 等价于C中的<stdlib.h>

js小函数

前言 对于项目中常用的一些函数总结. note 阻止F5刷新 $(document).keydown(function(e){ var ev = window.event || e; var code = ev.keyCode || ev.which; if (e.keyCode == 116){ ev.keyCode ? ev.keyCode = 0 : ev.which = 0; cancelBubble = true; return false; } }) Enter键登录 $(docum

JS_ECMA基本语法中的几种封装的小函数-2

大家好!今天继续给大家写一下ECMA中的剩下的小函数以及实用的实例: 首先先给大家说一下字符串.数组.数学方法以及json的一点小知识点: 字符串方法: str.length str.charAt(i):取字符串中的某一个; str.indexOf('e');找第一个出现的位置;找不到返回-1; str.lastIndexOf('e'):找最后一个e出现的位置;找不到返回-1; str.toUpperCase();转大写 str.toLowerCase();转小写 str.substring(起

JS_ECMA基本语法中的几种封装的小函数

先来回顾一下我们的字符串: 字符串方法: str.length str.charAt(i):取字符串中的某一个; str.indexOf('e');找第一个出现的位置;找不到返回-1; str.lastIndexOf('e'):找最后一个e出现的位置;找不到返回-1; str.toUpperCase();转大写 str.toLowerCase();转小写 str.substring(起始位置,结束位置):字符串截取; str.split('切割的方式');字符串切割;字符串转数组;数组方法:删除

使用getopt_long来解析参数的小函数模板

getopt_long原型 #define no_argument 0 #define required_argument 1 #define optional_argument 2 struct option { const char *name; //名称,下面实例中使用的--help,--version int has_arg; //是否有参数,可选0,1,2三个值,就是上面的那三个宏定义 int *flag; //返回值,传入的一个int指针,表示该参数的解析结果,如果是NULL,那么返

python若干小函数的使用

preface:一些python的小函数,好像挺方便的,记录下来. #coding:utf-8 #------------------- #split()的maxsplit()参数,第二个参数数值,代表着对前多少个分隔符进行分裂. print 'hello,world,foo,bar'.split(',',2) #['hello', 'world', 'foo,bar'] #------------------- #当遍历的时候,用enumerate()同时获得元素和下标.第二个参数数值表示从该

PHP小函数集-篇一

一. 验证 /** * 判断用户名是否规范 */ function is_username($username) { if (preg_match("/^[a-zA-Z]{1}([0-9a-zA-Z]|[._]){3,19}$/",$username)) { return true; } } /** * 判断密码是否规范 */ function is_password($password) { if (preg_match("/^[\@A-Za-z0-9\!\#\$\%\^\

ABAP语言常用的系统字段及函数

常用的系统变量如下: 1. SY-PAGNO当前页号 2. SY-DATUM当前时间 3. SY-LINSZ当前报表宽度 4. SY-LINCT当前报表长度 5. SPACE空字符 6. SY-SUBRC执行状态为0,表示成功. 7. SY-UNAME 用户名 8. SY-UZEIT当前时间 9. SY-TCODE当前的事务代码 10. SY-LSIND列表索引页 11. SY-LISTI上一个列表的索引 12. SY-LILLI绝对列表中选定行的行号 13. SY-CUROW屏幕上的行 14.

日期相关的小函数汇总

在写日历组件和旅行相关频道开发的过程中,很多需要地方需要和日期对象打交道.拿京东旅游首页来说, 左上角的搜索框就包含了许多日期相关的交互逻辑,它包含了机票,酒店,度假等,这些都含有出发日期,到达日期等. 里面还包含了一个日期组件,在用户选择完出发日期后,会自动把到达日期定位在出发日期的下一天. 又如机票低价日历 还有度假的这种特殊日历 以下是经常需要用到日期相关小函数 一. 判断闰年这个函数在日历组件是必须要的,闰年的2月是29天,非闰年是28天 /* * 判断闰年 * @param {Numb