66
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
1 |
/** |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
2 |
* Interface Elements for jQuery |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
3 |
* utility function |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
4 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
5 |
* http://interface.eyecon.ro |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
6 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
7 |
* Copyright (c) 2006 Stefan Petre |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
8 |
* Dual licensed under the MIT (MIT-LICENSE.txt) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
9 |
* and GPL (GPL-LICENSE.txt) licenses. |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
10 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
11 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
12 |
*/ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
13 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
14 |
jQuery.iUtil = { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
15 |
getPosition : function(e) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
16 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
17 |
var x = 0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
18 |
var y = 0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
19 |
var es = e.style; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
20 |
var restoreStyles = false; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
21 |
if (jQuery(e).css('display') == 'none') { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
22 |
var oldVisibility = es.visibility; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
23 |
var oldPosition = es.position; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
24 |
restoreStyles = true; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
25 |
es.visibility = 'hidden'; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
26 |
es.display = 'block'; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
27 |
es.position = 'absolute'; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
28 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
29 |
var el = e; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
30 |
while (el){ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
31 |
x += el.offsetLeft + (el.currentStyle && !jQuery.browser.opera ?parseInt(el.currentStyle.borderLeftWidth)||0:0); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
32 |
y += el.offsetTop + (el.currentStyle && !jQuery.browser.opera ?parseInt(el.currentStyle.borderTopWidth)||0:0); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
33 |
el = el.offsetParent; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
34 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
35 |
el = e; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
36 |
while (el && el.tagName && el.tagName.toLowerCase() != 'body') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
37 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
38 |
x -= el.scrollLeft||0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
39 |
y -= el.scrollTop||0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
40 |
el = el.parentNode; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
41 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
42 |
if (restoreStyles == true) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
43 |
es.display = 'none'; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
44 |
es.position = oldPosition; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
45 |
es.visibility = oldVisibility; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
46 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
47 |
return {x:x, y:y}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
48 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
49 |
getPositionLite : function(el) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
50 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
51 |
var x = 0, y = 0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
52 |
while(el) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
53 |
x += el.offsetLeft || 0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
54 |
y += el.offsetTop || 0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
55 |
el = el.offsetParent; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
56 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
57 |
return {x:x, y:y}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
58 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
59 |
getSize : function(e) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
60 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
61 |
var w = jQuery.css(e,'width'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
62 |
var h = jQuery.css(e,'height'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
63 |
var wb = 0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
64 |
var hb = 0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
65 |
var es = e.style; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
66 |
if (jQuery(e).css('display') != 'none') { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
67 |
wb = e.offsetWidth; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
68 |
hb = e.offsetHeight; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
69 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
70 |
var oldVisibility = es.visibility; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
71 |
var oldPosition = es.position; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
72 |
es.visibility = 'hidden'; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
73 |
es.display = 'block'; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
74 |
es.position = 'absolute'; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
75 |
wb = e.offsetWidth; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
76 |
hb = e.offsetHeight; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
77 |
es.display = 'none'; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
78 |
es.position = oldPosition; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
79 |
es.visibility = oldVisibility; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
80 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
81 |
return {w:w, h:h, wb:wb, hb:hb}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
82 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
83 |
getSizeLite : function(el) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
84 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
85 |
return { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
86 |
wb:el.offsetWidth||0, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
87 |
hb:el.offsetHeight||0 |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
88 |
}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
89 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
90 |
getClient : function(e) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
91 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
92 |
var h, w, de; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
93 |
if (e) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
94 |
w = e.clientWidth; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
95 |
h = e.clientHeight; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
96 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
97 |
de = document.documentElement; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
98 |
w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
99 |
h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
100 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
101 |
return {w:w,h:h}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
102 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
103 |
getScroll : function (e) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
104 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
105 |
var t=0, l=0, w=0, h=0, iw=0, ih=0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
106 |
if (e && e.nodeName.toLowerCase() != 'body') { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
107 |
t = e.scrollTop; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
108 |
l = e.scrollLeft; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
109 |
w = e.scrollWidth; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
110 |
h = e.scrollHeight; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
111 |
iw = 0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
112 |
ih = 0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
113 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
114 |
if (document.documentElement) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
115 |
t = document.documentElement.scrollTop; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
116 |
l = document.documentElement.scrollLeft; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
117 |
w = document.documentElement.scrollWidth; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
118 |
h = document.documentElement.scrollHeight; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
119 |
} else if (document.body) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
120 |
t = document.body.scrollTop; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
121 |
l = document.body.scrollLeft; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
122 |
w = document.body.scrollWidth; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
123 |
h = document.body.scrollHeight; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
124 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
125 |
iw = self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
126 |
ih = self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
127 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
128 |
return { t: t, l: l, w: w, h: h, iw: iw, ih: ih }; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
129 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
130 |
getMargins : function(e, toInteger) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
131 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
132 |
var el = jQuery(e); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
133 |
var t = el.css('marginTop') || ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
134 |
var r = el.css('marginRight') || ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
135 |
var b = el.css('marginBottom') || ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
136 |
var l = el.css('marginLeft') || ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
137 |
if (toInteger) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
138 |
return { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
139 |
t: parseInt(t)||0, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
140 |
r: parseInt(r)||0, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
141 |
b: parseInt(b)||0, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
142 |
l: parseInt(l) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
143 |
}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
144 |
else |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
145 |
return {t: t, r: r, b: b, l: l}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
146 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
147 |
getPadding : function(e, toInteger) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
148 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
149 |
var el = jQuery(e); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
150 |
var t = el.css('paddingTop') || ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
151 |
var r = el.css('paddingRight') || ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
152 |
var b = el.css('paddingBottom') || ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
153 |
var l = el.css('paddingLeft') || ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
154 |
if (toInteger) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
155 |
return { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
156 |
t: parseInt(t)||0, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
157 |
r: parseInt(r)||0, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
158 |
b: parseInt(b)||0, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
159 |
l: parseInt(l) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
160 |
}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
161 |
else |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
162 |
return {t: t, r: r, b: b, l: l}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
163 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
164 |
getBorder : function(e, toInteger) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
165 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
166 |
var el = jQuery(e); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
167 |
var t = el.css('borderTopWidth') || ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
168 |
var r = el.css('borderRightWidth') || ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
169 |
var b = el.css('borderBottomWidth') || ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
170 |
var l = el.css('borderLeftWidth') || ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
171 |
if (toInteger) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
172 |
return { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
173 |
t: parseInt(t)||0, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
174 |
r: parseInt(r)||0, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
175 |
b: parseInt(b)||0, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
176 |
l: parseInt(l)||0 |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
177 |
}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
178 |
else |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
179 |
return {t: t, r: r, b: b, l: l}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
180 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
181 |
getPointer : function(event) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
182 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
183 |
var x = event.pageX || (event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)) || 0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
184 |
var y = event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop)) || 0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
185 |
return {x:x, y:y}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
186 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
187 |
traverseDOM : function(nodeEl, func) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
188 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
189 |
func(nodeEl); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
190 |
nodeEl = nodeEl.firstChild; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
191 |
while(nodeEl){ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
192 |
jQuery.iUtil.traverseDOM(nodeEl, func); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
193 |
nodeEl = nodeEl.nextSibling; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
194 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
195 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
196 |
purgeEvents : function(nodeEl) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
197 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
198 |
jQuery.iUtil.traverseDOM( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
199 |
nodeEl, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
200 |
function(el) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
201 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
202 |
for(var attr in el){ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
203 |
if(typeof el[attr] === 'function') { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
204 |
el[attr] = null; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
205 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
206 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
207 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
208 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
209 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
210 |
centerEl : function(el, axis) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
211 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
212 |
var clientScroll = jQuery.iUtil.getScroll(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
213 |
var windowSize = jQuery.iUtil.getSize(el); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
214 |
if (!axis || axis == 'vertically') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
215 |
jQuery(el).css( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
216 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
217 |
top: clientScroll.t + ((Math.max(clientScroll.h,clientScroll.ih) - clientScroll.t - windowSize.hb)/2) + 'px' |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
218 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
219 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
220 |
if (!axis || axis == 'horizontally') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
221 |
jQuery(el).css( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
222 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
223 |
left: clientScroll.l + ((Math.max(clientScroll.w,clientScroll.iw) - clientScroll.l - windowSize.wb)/2) + 'px' |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
224 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
225 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
226 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
227 |
fixPNG : function (el, emptyGIF) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
228 |
var images = jQuery('img[@src*="png"]', el||document), png; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
229 |
images.each( function() { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
230 |
png = this.src; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
231 |
this.src = emptyGIF; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
232 |
this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + png + "')"; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
233 |
}); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
234 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
235 |
}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
236 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
237 |
// Helper function to support older browsers! |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
238 |
[].indexOf || (Array.prototype.indexOf = function(v, n){ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
239 |
n = (n == null) ? 0 : n; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
240 |
var m = this.length; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
241 |
for (var i=n; i<m; i++) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
242 |
if (this[i] == v) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
243 |
return i; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
244 |
return -1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
245 |
}); |