The code of each function package compatible browser

  1 // Check scrolling the scroll bar from   2 function getScrollOffset () {
   . 3 IF (window.pageXOffset) {
   . 4 return {
   . 5             X: window.pageXOffset,
   . 6             Y: window.pageYOffset
   . 7         }
   . 8      } the else {
   . 9 return {
 10              X : document.body.scrollLeft + document.documentElement.scrollLeft,
 . 11              Y: document.body.scrollTop + document.documentElement.scrollTop
 12 is         }
 13 is     }
 
                              14 }
 15 
 16 //查看视口的尺寸
 17 function getViewportOffset() {
 18     if (window.innerWidth) {
 19         return {
 20             w: window.innerWidth,
 21             h: window.innerHeight
 22         }
 23     } else {
 24         if (document.compatMode === "BackCompat") {
 25             return {
 26                 w: document.body.clientWidth,
 27                 h: document.body.clientHeight
 28             }
 29          } the else {
 30              return {
 31 is                  W: document.documentElement.clientWidth,
 32                  H: document.documentElement.clientHeight
 33 is              }
 34 is          }
 35      }
 36  }
 37 [  
38 is  // element coordinates relative to the document
 39  function getElementPosition (DOM) {
 40      var left = dom.offsetLeft;
 41 is      var Top = dom.offsetTop;
 42 is      the while (. 1 ) {
 43         dom = dom.offsetParent;
 44         if (dom) {
 45             left += dom.offsetLeft;
 46             top += dom.offsetTop;
 47         } else {
 48             break;
 49         }
 50     }
 51     return {
 52         left: left,
 53         top: top
 54     };
 55 }
 56 
 57 
 58 //获取样式
 59 function getStyle(elem, prop) {
 60     if (window.getComputedStyle) {
 61         return window.getComputedStyle(elem, null)[prop];
 62     } else {
 63         return elem.currentStyle[prop];
 64     }
 65 }
 66 
 67 //兼容的 添加事件函数
 68 function addEvent(elem, type, handle) {
 69     if (elem.addEventListener) {
 70         elem.addEventListener(type, handle, false);
 71     } else if (elem.attachEvent) {
 72         elem.attachEvent('on' + type, function() {
 73             handle.call(elem);
 74         })
 75     } else {
 76         elem['on' + type] = handle;
 77     }
 78 }
 79 
 80 // 取消冒泡
 81 function stopBubble(event) {
 82     if (event.stopPropagation) {
 83         event.stopPropagation();
 84     } else {
 85         event.stopBubble = true;
 86     }
 87  }
 88  
89  // stop the default event
 90  function cancelHandler (Event) {
 91 is      IF (the event.preventDefault) {
 92          the event.preventDefault ();
 93      } the else {
 94          event.returnValue = to false ;
 95      }
 96  }
 97  
98  / / cancel the event 
 99  function removeEvent (elem, of the type, myFunction) {
 100      IF (elem.removeEventListener) {                // all browsers except IE 8 and earlier versions of IE 
101         elem.removeEventListener(type, myFunction);
102     } else if (elem.detachEvent) { 
103         elem.detachEvent('on' + type, myFunction);
104     }
105 }
106 
107 // 拖拽
108 function drap(elem) {
109     var disX,
110         disY;
111     addEvent(elem, 'mousedown', function(e) {
112         var event = e || window.event;
113         disX = event.pageX - parseInt(getStyle(elem, 'left'));
114         disY = event.pageY - parseInt(getStyle(elem, 'top'));
115         addEvent(document, 'mousemove', mouseMove);
116         addEvent(document, 'mouseup', mouseUp);
117         stopBubble(event);
118         cancelHandler(event);
119     });
120 
121     function mouseMove(e) {
122         var event = e || window.event;
123         elem.style.left = event.pageX - disX + 'px';
124         elem.style.top = event.pageY - disY + 'px';
125     }
126 
127     function mouseUp(e) {
128         var event = e || window.event;
129         removeEvent(document, 'mousemove', mouseMove);
130         removeEvent(document, 'mouseup', mouseUp);
131     }
132 }
133 
134 
135 //仿 fixed
136 function positionFixed(elem) {
137     var elemTop = elem.offsetTop;
138     window.onscroll = function() {
139         div.style.top = window.pageYOffset + elemTop + 'px';
140     }
 141  }
 142  
143  // asynchronously loaded, create a script tag, is inserted into the DOM, loaded after the callback
 144  function The loadScript (URL, the callback) {
 145      var script = document.createElement ( 'script' );
 146      script.type = 'text / JavaScript' ;
 147      IF (script.readyState) {
 148          script.onreadystatechange = function () {     // IEs 
149              IF (script.readyState == 'Complete' || script.readyState == 'loaded' ) {
 150                  the callback ();
 151              }
 152         }
 153      } the else {
 154          script.onload = function () {                 // non IEs 
155              the callback ();
 156          }
 157      }
 158      script.src = URL;
 159      document.head.appendChild (Script);
 160.  }
 161  // call 
162  // The loadScript ( 'demo.js', function () {test ();}); 
163  // the callback not directly write test, because the calling code when executed, js file has not been loaded, the system is unable to recognize what test an error is reported, 
164  // so we need to immediately execute a function, then call again when you need to call;

 

Guess you like

Origin www.cnblogs.com/hjysunshine/p/12284410.html