zoukankan      html  css  js  c++  java
  • 总结的一些封装好的javascript函数

    平时总结的一些常用javascript函数封装:

      1 //获取样式
      2     function getStyle(obj,name){
      3         if(obj.currentStyle){
      4             return obj.currentStyle[name];
      5         }
      6         else{
      7             return getComputedStyle(obj,false)[name];
      8         }
      9     }
     10 
     11     //获取鼠标的位置
     12     function getPos(ev){
     13         var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
     14         var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
     15         return{x:ev.clientX+scrollLeft,y:ev.clientY+scrollTop}  //以一个json的形式返回
     16 
     17     }
     18 
     19     //通过className选择元素
     20     function getByClass(oParent,sClass){
     21         var aResult = [];
     22         var aEle = oParent.getElementsByTagName('*');
     23         for(var i=0; i<aEle.length; i++){
     24             if(aEle[i].className == sClass){
     25                 aResult.push(aEle[i]);
     26             }
     27 
     28         }
     29         return aResult;   //返回一个数组
     30 
     31     }
     32 
     33     //完美运动框架
     34     function startMove(obj,json,fnEnd){
     35 
     36         clearInterval(obj.timer);
     37         obj.timer=setInterval(function(){
     38             var bStop=true;  //这一次运动就结束了---所有值都已经到了
     39             for(var attr in json){///
     40 
     41                 //1.取当前的值        
     42                 var cur = 0;
     43                 if(attr == 'opacity'){
     44                     cur = Math.round((parseFloat(getStyle(obj,attr)))*100);
     45                 }
     46                 else{
     47                     cur = parseInt(getStyle(obj,attr));
     48                 }
     49 
     50 //2.算速度
     51                 var speed = (json[attr]-cur)/6;
     52                 speed = speed>0?Math.ceil(speed):Math.floor(speed);
     53 
     54 //3.检测停止
     55                 if(cur != json[attr]){
     56                     bStop = false;
     57                 }
     58                 if(attr == 'opacity'){
     59                     obj.style.filter = 'alpha(opacity:'+(cur+speed)+')';
     60                     obj.style.opacity = (cur+speed)/100;
     61                 }else{
     62                     obj.style[attr] = cur + speed + 'px';
     63                 }
     64             }///
     65 
     66             if(bStop){
     67                 clearInterval(obj.timer);
     68                 if(fnEnd) fnEnd;
     69             }
     70         },30);
     71     }
     72 
     73     //事件绑定函数
     74     function myAddEvent(obj,ev,fn){
     75         if(obj.attachEvent){
     76             obj.attachEvent('on'+ev,fn);
     77         }
     78         else{
     79             obj.addEventListener(ev,fn,false);
     80         }
     81     }
     82 
     83     //全兼容的 事件绑定  and  阻止默认事件
     84     var EventUtil = {
     85 //Notice: type is not include 'on', for example: click mouseover mouseout and so on
     86         addHandler: function(element, type, handler){
     87             if (element.addEventListener){
     88                 element.addEventListener(type, handler, false);
     89             } else if(element.attachEvent){
     90                 element.attachEvent('on'+type, handler);
     91             } else {
     92                 element['on'+type] = handler;
     93             }
     94         },
     95 
     96         preventDefault: function(event){
     97             if(event.preventDefault){
     98                 event.preventDefault();
     99             }else{
    100                 event.returnValue = false;
    101             }
    102         }
    103     };
    104 
    105     //ajax函数
    106     function ajax(url,fnSucc,fnFaild){
    107 //1.创建Ajax对象
    108         if(window.XMLHttpRequest){
    109             var oAjax = new XMLHttpRequest();
    110         }
    111         else{
    112             var oAjax = new ActiveXObject("Microsoft.XMLHttp");
    113 
    114         }
    115 //2.连接服务器
    116         oAjax.open('GET',url,true);
    117 //3.发送请求
    118         oAjax.send();
    119 //4.接受返回值
    120         oAjax.onreadystatechange = function(){
    121             if(oAjax.readyState == 4){  //读取完成
    122                 if(oAjax.status == 200){  //成功
    123                     fnSucc(oAjax.responseText);
    124                 }
    125                 else{
    126                     if(fnFaild){     //传进来了才会用
    127                         fnFaild(oAjax.status);
    128                     }
    129                 }
    130             }
    131         };
    132     }
  • 相关阅读:
    清理一瓶花茶中的虫子
    一些网上的新信息安全问题
    对于秋季高程备课的随笔
    用共享单车第一次遇到程序出现问题的思考
    开始带学生的一些感受
    对近期北辰开会的一些总结
    WSN和RFID书上好多问题:关于S50
    统计课设成绩用到excel画成绩频率分布曲线
    linux 常用命令
    局域网 ARP 欺骗原理详解
  • 原文地址:https://www.cnblogs.com/xiayu25/p/6242536.html
Copyright © 2011-2022 走看看