• JQUERY作者JOHN RESIG自己封装的常用函数


    //获取元素的样式值。

    function getStyle(elem,name){
        if(elem.style[name]){
            return elem.style[name];
            }else if(elem.currentStyle){
                return elem.currentStyle[name];
                }else if(document.defaultView&&document.defaultView.getComputedStyle){
                    name=name.replace(/([A-Z])/g,"-$1");
                    name=name.toLowerCase();
                    var s=document.defaultView.getComputedStyle(elem,"");
                    return s&&s.getPropertyValue(name);
                    }else{
                        return null
                        }
        }
    //获取元素的样式值。
    function getStyle(elem,name){
        if(elem.style[name]){
            return elem.style[name];
            }else if(elem.currentStyle){
                return elem.currentStyle[name];
                }else if(document.defaultView&&document.defaultView.getComputedStyle){
                    name=name.replace(/([A-Z])/g,"-$1");
                    name=name.toLowerCase();
                    var s=document.defaultView.getComputedStyle(elem,"");
                    return s&&s.getPropertyValue(name);
                    }else{
                        return null
                        }
        }
    //获取元素相对于这个页面的x和y坐标。    
    function pageX(elem){
        return elem.offsetParent?(elem.offsetLeft+pageX(elem.offsetParent)):elem.offsetLeft;
            }
    function pageY(elem){
        return elem.offsetParent?(elem.offsetTop+pageY(elem.offsetParent)):elem.offsetTop;
            }
    //获取元素相对于父元素的x和y坐标。        
    function parentX(elem){
        return elem.parentNode==elem.offsetParent?elem.offsetLeft:pageX(elem)-pageX(elem.parentNode);
        }
    function parentY(elem){
        return elem.parentNode==elem.offsetParent?elem.offsetTop:pageY(elem)-pageY(elem.parentNode);
        }
    //获取使用css定位的元素的x和y坐标。
    function posX(elem){
        return parseInt(getStyle(elem,”left”));
        }    
    function posY(elem){
        return parseInt(getStyle(elem,”top”));
        }
    //设置元素位置。    
    function setX(elem,pos){
        elem.style.left=pos+”px”;
        }    
    function setY(elem,pos){
        elem.style.top=pos+”px”;
        }
    //增加元素X和y坐标。    
    function addX(elem,pos){
        set(elem,(posX(elem)+pos));
        }
    function addY(elem,pos){
        set(elem,(posY(elem)+pos));
        }
    //获取元素使用css控制大小的高度和宽度    
    function getHeight(elem){
        return parseInt(getStyle(elem,”height”));
        }
    function getWidth(elem){
        return parseInt(getStyle(elem,”width”));
        }
    //获取元素可能,完整的高度和宽度
    function getFullHeight(elem){
        if(getStyle(elem,”display”)!=”none”){
            return getHeight(elem)||elem.offsetHeight;
            }else{
            var old=resetCss(elem,{display:”block”,visibility:”hidden”,position:”absolute”});
            var h=elem.clientHeight||getHeight(elem);
            restoreCss(elem,old);
            return h;
            }
        }
    function getFullWidth(elem){
        if(getStyle(elem,”display”)!=”none”){
            return getWidth(elem)||elem.offsetWidth;
            }else{
            var old=resetCss(elem,{display:”block”,visibility:”hidden”,position:”absolute”});
            var w=elem.clientWidth||getWidth(elem);
            restoreCss(elem,old);
            return w;
            }
        }
    //设置css,并保存旧的css
    function resetCss(elem,prop){
        var old={};
        for(var i in prop){
            old[i]=elem.style[i];
            elem.style[i]=prop[i];
            }
            return old;
        }
    function restoreCss(elem,prop){
        for(var i in prop){
            elem.style[i]=prop[i];
            }
        }
    //显示和隐藏
    function show(elem){
        elem.style.display=elem.$oldDisplay||” “;
        }
    function hide(elem){
    var curDisplay=getStyle(elem,”display”);
    if(curDisplay!=”none”){
             elem.$oldDisplay=curDisplay;
        elem.style.display=”none”;
           }
        }
    //设置透明度    
    function setOpacity(elem,num){
        if(elem.filters){
            elem.style.filter=”alpha(opacity=”+num+”)”;
            }else{
                elem.style.opacity=num/100;
                }
        }
    //滑动    
    function slideDown(elem){
        var h=getFullHeight(elem);
        elem.style.height=”0px”;
        show(elem);
        for(var i=0;i<=100;i+=5){
            new function(){
                      var pos=i;
                      setTimeout(function(){elem.style.height=(pos/100*h)+”px”;},(pos*10));
                      }
            }
        }
    //渐变
    function fadeIn(elem){    
             show(elem);
             setOpacity(elem,0);
        for(var i=0;i<=100;i+=5){
            new function(){
                      var pos=i;
                      setTimeout(function(){setOpacity(elem,pos);},(pos+1)*10);
                      }
            }
        }
    //获取鼠标光标相对于整个页面的位置。    
    function getX(e){
        e=e||window.event;
        return e.pageX||e.clientX+document.body.scrollLeft;
        }
    function getY(e){
        e=e||window.event;
        return e.pageY||e.clientY+document.body.scrollTop;
        }
    //获取鼠标光标相对于当前元素的位置。
    function getElementX(e){
        return (e&&e.layerX)||window.event.offsetX;
        }
    function getElementY(e){
        return (e&&e.layerY)||window.event.offsetY;
        }
    //获取页面的高度和宽度
    function getPageHeight(){
        var de=document.documentElement;
        return document.body.scrollHeight||(de&&de.scrollHeight);
        }
    function getPageWidth(){
        var de=document.documentElement;
        return document.body.scrollWidth||(de&&de.scrollWidth);
        }
    //获取滚动条的位置。
    function scrollX(){
        var de=document.documentElement;
        return self.pageXOffset||(de&&de.scrollLeft)||document.body.scrollLeft;
        }
    function scrollY(){
        var de=document.documentElement;
        return self.pageYOffset||(de&&de.scrollTop)||document.body.scrollTop;
        }
    //获取视口的高度和宽度。    
    function windowHeight() {
        var de = document.documentElement;
        return self.innerHeight||(de && de.offsetHeight)||document.body.offsetHeight;
    }
    function windowWidth() {
        var de = document.documentElement;
        return self.innerWidth||( de && de.offsetWidth )||document.body.offsetWidth;
    }

    height : function() {
       // handle IE 6
       if ($.browser.msie && $.browser.version < 7) {
        var scrollHeight = Math.max(
         document.documentElement.scrollHeight,
         document.body.scrollHeight
        );
        var offsetHeight = Math.max(
         document.documentElement.offsetHeight,
         document.body.offsetHeight
        );

        if (scrollHeight < offsetHeight) {
         return $(window).height() + 'px';
        } else {
         return scrollHeight + 'px';
        }
       // handle "good" browsers
       } else {
        return $(document).height() + 'px';
       }
    },

    width : function() {
       // handle IE 6
       if ($.browser.msie && $.browser.version < 7) {
        var scrollWidth = Math.max(
         document.documentElement.scrollWidth,
         document.body.scrollWidth
        );
        var offsetWidth = Math.max(
         document.documentElement.offsetWidth,
         document.body.offsetWidth
        );

        if (scrollWidth < offsetWidth) {
         return $(window).width() + 'px';
        } else {
         return scrollWidth + 'px';
        }
       // handle "good" browsers
       } else {
        return $(document).width() + 'px';
       }
    }

  • 相关阅读:
    洛谷 2574 XOR的艺术
    洛谷 1774 最接近神的人
    洛谷 3398 仓鼠找sugar 【模板】判断树上两链有交
    洛谷 2440 木材加工
    洛谷 1824 进击的奶牛
    洛谷 1873 砍树
    洛谷 1577 切绳子
    51nod1485 字母排序
    51nod1055 最长等差数列
    51nod1128 正整数分组V2
  • 原文地址:https://www.cnblogs.com/yeahooh/p/2576433.html
Copyright © 2020-2023  润新知