iutil.js
上传用户:shjgzm
上传日期:2017-08-31
资源大小:2757k
文件大小:5k
源码类别:

Ajax

开发平台:

Java

  1. /**
  2.  * Interface Elements for jQuery
  3.  * utility function
  4.  * 
  5.  * http://interface.eyecon.ro
  6.  * 
  7.  * Copyright (c) 2006 Stefan Petre
  8.  * Dual licensed under the MIT (MIT-LICENSE.txt) 
  9.  * and GPL (GPL-LICENSE.txt) licenses.
  10.  *   
  11.  *
  12.  */
  13. jQuery.iUtil = {
  14. getPos : function (e, s)
  15. {
  16. var l = 0;
  17. var t  = 0;
  18. var sl = 0;
  19. var st  = 0;
  20. var w = jQuery.css(e,'width');
  21. var h = jQuery.css(e,'height');
  22. var wb = e.offsetWidth;
  23. var hb = e.offsetHeight;
  24. while (e.offsetParent){
  25. l += e.offsetLeft + (e.currentStyle?parseInt(e.currentStyle.borderLeftWidth)||0:0);
  26. t += e.offsetTop  + (e.currentStyle?parseInt(e.currentStyle.borderTopWidth)||0:0);
  27. if (s) {
  28. sl += e.parentNode.scrollLeft||0;
  29. st += e.parentNode.scrollTop||0;
  30. }
  31. e = e.offsetParent;
  32. }
  33. l += e.offsetLeft + (e.currentStyle?parseInt(e.currentStyle.borderLeftWidth)||0:0);
  34. t += e.offsetTop  + (e.currentStyle?parseInt(e.currentStyle.borderTopWidth)||0:0);
  35. st = t - st;
  36. sl = l - sl;
  37. return {x:l, y:t, sx:sl, sy:st, w:w, h:h, wb:wb, hb:hb};
  38. },
  39. getPosition : function(e)
  40. {
  41. var x = 0;
  42. var y = 0;
  43. var restoreStyle = false;
  44. es = e.style;
  45. if (jQuery(e).css('display') == 'none') {
  46. oldVisibility = es.visibility;
  47. oldPosition = es.position;
  48. es.visibility = 'hidden';
  49. es.display = 'block';
  50. es.position = 'absolute';
  51. restoreStyle = true;
  52. }
  53. el = e;
  54. while (el){
  55. x += el.offsetLeft + (el.currentStyle && !jQuery.browser.opera ?parseInt(el.currentStyle.borderLeftWidth)||0:0);
  56. y += el.offsetTop + (el.currentStyle && !jQuery.browser.opera ?parseInt(el.currentStyle.borderTopWidth)||0:0);
  57. el = el.offsetParent;
  58. }
  59. el = e;
  60. while (el && el.tagName.toLowerCase() != 'body')
  61. {
  62. x -= el.scrollLeft||0;
  63. y -= el.scrollTop||0;
  64. el = el.parentNode;
  65. }
  66. if (restoreStyle) {
  67. es.display = 'none';
  68. es.position = oldPosition;
  69. es.visibility = oldVisibility;
  70. }
  71. return {x:x, y:y};
  72. },
  73. getSize : function(e)
  74. {
  75. var w = jQuery.css(e,'width');
  76. var h = jQuery.css(e,'height');
  77. var wb = 0;
  78. var hb = 0;
  79. es = e.style;
  80. if (jQuery(e).css('display') != 'none') {
  81. wb = e.offsetWidth;
  82. hb = e.offsetHeight;
  83. } else {
  84. oldVisibility = es.visibility;
  85. oldPosition = es.position;
  86. es.visibility = 'hidden';
  87. es.display = 'block';
  88. es.position = 'absolute';
  89. wb = e.offsetWidth;
  90. hb = e.offsetHeight;
  91. es.display = 'none';
  92. es.position = oldPosition;
  93. es.visibility = oldVisibility;
  94. }
  95. return {w:w, h:h, wb:wb, hb:hb};
  96. },
  97. getClient : function(e)
  98. {
  99. if (e) {
  100. w = e.clientWidth;
  101. h = e.clientHeight;
  102. } else {
  103. de = document.documentElement;
  104. w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
  105. h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
  106. }
  107. return {w:w,h:h};
  108. },
  109. getScroll : function (e) 
  110. {
  111. if (e) {
  112. t = e.scrollTop;
  113. l = e.scrollLeft;
  114. w = e.scrollWidth;
  115. h = e.scrollHeight;
  116. iw = 0;
  117. ih = 0;
  118. } else  {
  119. if (document.documentElement && document.documentElement.scrollTop) {
  120. t = document.documentElement.scrollTop;
  121. l = document.documentElement.scrollLeft;
  122. w = document.documentElement.scrollWidth;
  123. h = document.documentElement.scrollHeight;
  124. } else if (document.body) {
  125. t = document.body.scrollTop;
  126. l = document.body.scrollLeft;
  127. w = document.body.scrollWidth;
  128. h = document.body.scrollHeight;
  129. }
  130. iw = self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0;
  131. ih = self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0;
  132. }
  133. return { t: t, l: l, w: w, h: h, iw: iw, ih: ih };
  134. },
  135. getMargins : function(e, toInteger)
  136. {
  137. el = jQuery(e);
  138. t = el.css('marginTop') || '';
  139. r = el.css('marginRight') || '';
  140. b = el.css('marginBottom') || '';
  141. l = el.css('marginLeft') || '';
  142. if (toInteger)
  143. return {
  144. t: parseInt(t)||0, 
  145. r: parseInt(r)||0,
  146. b: parseInt(b)||0,
  147. l: parseInt(l)
  148. };
  149. else
  150. return {t: t, r: r, b: b, l: l};
  151. },
  152. getPadding : function(e, toInteger)
  153. {
  154. el = jQuery(e);
  155. t = el.css('paddingTop') || '';
  156. r = el.css('paddingRight') || '';
  157. b = el.css('paddingBottom') || '';
  158. l = el.css('paddingLeft') || '';
  159. if (toInteger)
  160. return {
  161. t: parseInt(t)||0, 
  162. r: parseInt(r)||0,
  163. b: parseInt(b)||0,
  164. l: parseInt(l)
  165. };
  166. else
  167. return {t: t, r: r, b: b, l: l};
  168. },
  169. getBorder : function(e, toInteger)
  170. {
  171. el = jQuery(e);
  172. t = el.css('borderTopWidth') || '';
  173. r = el.css('borderRightWidth') || '';
  174. b = el.css('borderBottomWidth') || '';
  175. l = el.css('borderLeftWidth') || '';
  176. if (toInteger)
  177. return {
  178. t: parseInt(t)||0, 
  179. r: parseInt(r)||0,
  180. b: parseInt(b)||0,
  181. l: parseInt(l)||0
  182. };
  183. else
  184. return {t: t, r: r, b: b, l: l};
  185. },
  186. getPointer : function(event)
  187. {
  188. x = event.pageX || (event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)) || 0;
  189. y = event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop)) || 0;
  190. return {x:x, y:y};
  191. }
  192. };