PageSourceSearch

https://www.stadtwerke-nienburg.de/nienburgPortal/static/js/HRSysL…/Position.js?nc=1781079658000

js stadtwerke-nienburg.de collected 2026-10-07 00:48:31 UTC 9,204 bytes, 302 lines download raw bytes

1/**
2 * Diese Funktion ermittelt die absoluten Koordinaten des übergebenen Objekts "element".
3 * 
4 * @param element Ein Element, welches Knoten des DOM-Baums
5 *        (Wichtig, denn sonst läuft getBoundingClientRect auf Fehler!) ist.
6 * 
7 * @returns null, wenn etwas bei der Positionsberechnung schiefgelaufen ist, ansonsten
8 *          ein JS-Element position mit 
9 *          position.x, die x-Koordinate des Elements.
10 *          position.y, die y-Koordinate des Elements.
11 */
12function getPosition(element)
13{
14   try
15   {
16      var elem=element,tagname="",x=0,y=0;
17
18      if (!element)
19      {
20         var position = new Object();           // Objekt mit x und y zurueckgeben
21         position.x = getScrollPosition().x;
22         position.y = getScrollPosition().y;
23
24         return position;
25      }
26      
27      // Der einfache Weg:
28      if(element.getBoundingClientRect)
29      {
30         var position = new Object();          // Objekt mit x und y zurueckgeben
31
32         position.x = element.getBoundingClientRect().left + getScrollPosition().x;
33         position.y = element.getBoundingClientRect().top  + getScrollPosition().y;
34
35         return position;
36      }
37
38      //
39      // Der raue Weg: Zu Fuß ausrechnen
40      // 	
41      while ( elem != null && (typeof(elem) == "object") && (typeof(elem.tagName) != "undefined")) // solange elem ein Objekt ist und die Eigenschaft offsetTop enthaelt
42      {
43          y += elem.offsetTop; // Offset des jeweiligen Elements addieren 
44          x += elem.offsetLeft;
45
46          tagname = elem.tagName.toUpperCase(); // tag-Name ermitteln, Grossbuchstaben
47          
48          // IE-Hack???
49          if ((navigator.userAgent.indexOf('MSIE 6.0') > -1) || (navigator.userAgent.indexOf('MSIE 7.0') > -1))
50          {
51             if (elem.id == "col3")
52             {
53                x -= elem.offsetLeft;
54             }
55          }
56          if (tagname == "BODY") // wenn beim Body-tag angekommen elem fuer Abbruch auf 0 setzen
57          {
58             elem = 0;
59          }
60          if (typeof(elem) == "object") // wenn elem ein Objekt ist und
61          {
62             if (typeof(elem.offsetParent) == "object") // offsetParent enthaelt
63             {
64                elem = elem.offsetParent; // Offset-Elternelement ermitteln
65             }
66          }
67      }
68
69      position=new Object(); // Objekt mit x und y zurueckgeben
70      position.x=x;
71      position.y=y;
72      
73      return position;
74   }
75   catch(error)
76   {
77      return null;
78   }
79}
80
81
82/**
83 * Gibt die Mauskoordinaten als eigenständiges Positionierungsobjekt zurück.
84 * Bsp.: getMouseCoords(event, {parent: iboxElem});
85 * 
86 * @param event Das Event.
87 * @param config Ein (erweiterbares) Konfigurationsobjekt.
88 *               {parent : null} Mauskoordinaten werden relativ zum gesamten Dokument angegeben (default),
89 *                   Sonst: Mauskoordinaten werden relativ zum übergebenen Element ermittelt.
90 * 
91 * @return position Ein JS-Objekt mit Membern x und y, welches die Position der Maus enthält.
92 *                  Mit position.x greift man auf ermittelte x-Koordinate und mit position.y
93 *                  auf die ermittelte y-Koordinate der Maus zu.
94 */
95function getMouseCoords(event, config)
96{
97   var position = new Object(); 
98   
99   // event überprüfen und IE-kompatibel machen
100   event = event || window.event;
101   
102   // hier sind die Maus-Koordinaten in normalen Browser. Diese sind relativ zum Dokument.
103   if(event.pageX || event.pageY)
104   {
105     position.x = event.pageX;
106     position.y = event.pageY;  
107   }
108   else  // hier sind die Maus-Koordinaten im Internet Explorer. Der speichert die Koordinaten relativ zum Fenster, nicht zum Dokument
109   {
110     position.x = event.clientX + getScrollPosition().x - document.body.clientLeft;
111     position.y = event.clientY + getScrollPosition().y - document.body.clientTop;
112   };
113   
114   if (config)
115   {
116      if (config.parent)
117      {
118         // Bestimme die Mausposition relativ zum übergebenen Objekt.
119         var positionParent = getPosition(config.parent);
120         position.x -= positionParent.x;
121         position.y -= positionParent.y;
122      }
123   }
124   return position;
125}
126
127/**
128 * Funktion ermittelt aus dem übergebenen event-Objekt die X- und Y-Korrdinate
129 * eines Touch-Events. Als Fallback werden die entsprechenden Maus-Korrdinaten
130 * geliefert, wenn es sich bei event beispielsweise nicht um ein Touch-Evwent handelt.
131 * 
132 * @param event Das Event-Objekt aus dem die Korrdinaten ermittelt werden.
133 * @returns Objekt mit den Membern x und y, die die jeweilige x bzw. y Korrdinate
134 * aus dem Touch-Event enthalten.
135 */
136function HRGetTouchCoords(event)
137{
138   var position = new Object(); 
139   
140   if (event && event.touches && event.touches.length && event.touches.length > 0)
141   {
142      position.x = event.touches[0].pageX;
143      position.y = event.touches[0].pageY;
144   }
145   else if (event && event.changedTouches && event.changedTouches.length && event.changedTouches.length > 0)
146   {
147      position.x = event.changedTouches[0].pageX;
148      position.y = event.changedTouches[0].pageY;
149   }
150   else
151   {
152      //
153      // Wenn keine Touches-Einträge gefunden wurden, versuchen wir es auf dem "normalen" Weg,
154      // als ob ein Maus-Event vorliegt.
155      //
156      position = getMouseCoords(event);
157   }
158   return position;
159}
160
161//
162// Gibt true zurück, wenn sich die Maus über dem mitübergebenen Element befindet 
163//
164function isMouseOverElement(element,event)
165{
166   if (!element || !event)
167   {
168      //console.log("Fehlt das Element? -> " + element + " oder das Event? ->" + event);
169      return false;
170   }
171   
172   var mousePos = getMouseCoords(event);
173   var targPos    = getPosition(element);
174   var targWidth  = parseInt(element.offsetWidth);
175   var targHeight = parseInt(element.offsetHeight);
176
177   if( (mousePos.x >= targPos.x)                &&              // ist rechts vom linken Rand oder darauf
178       (mousePos.x <= (targPos.x + targWidth))  &&              // ist links vom rechten Rand oder darauf
179       (mousePos.y >= targPos.y)                &&              // unterhalb vom oberen Rand oder darauf
180       (mousePos.y <= (targPos.y + targHeight)))                // oberhalb vom unteren Rand oder darauf
181   {
182       return true;
183   }
184   else
185   {
186       return false;
187   }
188}
189
190//
191// Diese Funktion richtet ein Element unter einem anderen Element aus. Der Offset wird zum y-Abstand hinzuaddiert.
192//
193function adjustFloatingElementToFixedElement(floatingElement, fixedElement,offset)
194{
195    // höhe des Elements ermitteln
196    var suchfeldHoehe = 20;                                 // angenomme Standardhöhe des Element zur Ausrichtung 
197    if(window.getComputedStyle)                             // W3C-style
198    {
199       suchfeldHoehe = parseInt(window.getComputedStyle(fixedElement, "").getPropertyValue("height"));// wird der wert nach int geparsed
200    }
201    else if(fixedElement.currentStyle )                         // IE-style
202    {
203       if (parseInt(fixedElement.currentStyle["height"]))       // wenn height ein integer enthält
204          suchfeldHoehe = parseInt(fixedElement.currentStyle["height"]); // wird der wert nach int geparsed
205    }
206    var pos = getPosition(fixedElement);
207    floatingElement.style.visibility = "visible";
208    floatingElement.style.left = pos.x + "px";
209    floatingElement.style.top  = pos.y + suchfeldHoehe + offset + "px";
210    floatingElement.style.visibility = "hidden";
211}
212
213//
214// Gibt die Position der Seite zurück, also um wieviele Pixel gescrolled wurde.
215// 
216function getScrollPosition()  
217{
218    var scrOfX = 0, scrOfY = 0;
219 
220    if( typeof( window.pageYOffset ) == 'number' ) 
221	 {
222        //Netscape compliant
223        scrOfY = window.pageYOffset;
224        scrOfX = window.pageXOffset;
225    } 
226	 else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) 
227	 {
228        //DOM compliant
229        scrOfY = document.body.scrollTop;
230        scrOfX = document.body.scrollLeft;
231    } 
232	 else if( document.documentElement ) 
233	 {
234        //IE6 standards compliant mode
235        scrOfY = document.documentElement.scrollTop;
236        scrOfX = document.documentElement.scrollLeft;
237    }
238	 
239	 var scrollPosition = new Object(); 
240	 scrollPosition.x = scrOfX;
241	 scrollPosition.y = scrOfY;
242	 
243    return scrollPosition;
244}
245
246
247
248
249// 
250// Gibt die Position der Seite zurück, also um wieviele Pixel gescrolled wurde.
251// 
252function setScrollPosition(x,y) 
253{
254	window.scrollTo(x,y);
255}
256
257
258
259// 
260// Gibt die Breite des Windows zurück
261// 
262function getWindowWidth(win) 
263{ 
264	if (win == undefined) 
265		win = window; 
266	if (win.innerWidth) 
267	{ 
268		return win.innerWidth; 
269	} 
270	else 
271	{ 
272		if (win.document.documentElement && 
273			win.document.documentElement.clientWidth) 
274			{ 
275				return win.document.documentElement.clientWidth; 
276			} 
277		return win.document.body.offsetWidth; 
278	} 
279} 
280
281
282// 
283// Gibt die Höhe des Windows zurück
284// 
285function getWindowHeight(win) 
286{ 
287	if (win == undefined) 
288		win = window; 
289	if (win.innerHeight) 
290	{ 
291		return win.innerHeight; 
292	} 
293	else 
294	{ 
295		if (win.document.documentElement 
296			&& win.document.documentElement.clientHeight) 
297			{ 
298				return win.document.documentElement.clientHeight; 
299			} 
300		return win.document.body.offsetHeight; 
301	} 
302}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.