OLD | NEW |
1 function createSquareCompositedHighlight(node) | 1 function createSquareCompositedHighlight(node) |
2 { | 2 { |
3 return _createHighlight(node, "squaredHighlight highlightDiv composited"); | 3 return _createHighlight(node, "squaredHighlight highlightDiv composited"); |
4 } | 4 } |
5 | 5 |
6 function createCompositedHighlight(node) | 6 function createCompositedHighlight(node) |
7 { | 7 { |
8 return _createHighlight(node, "highlightDiv composited"); | 8 return _createHighlight(node, "highlightDiv composited"); |
9 } | 9 } |
10 | 10 |
11 function createHighlight(node) | 11 function createHighlight(node) |
12 { | 12 { |
13 return _createHighlight(node, "highlightDiv"); | 13 return _createHighlight(node, "highlightDiv"); |
14 } | 14 } |
15 | 15 |
16 function _createHighlight(node, classes) { | 16 function _createHighlight(node, classes) { |
17 var div = document.createElement('div'); | 17 var div = document.createElement('div'); |
18 div.setAttribute('id', 'highlight'); | 18 div.setAttribute('id', 'highlight'); |
19 div.setAttribute('class', classes); | 19 div.setAttribute('class', classes); |
20 document.body.appendChild(div); | 20 document.body.appendChild(div); |
21 | 21 |
22 var offset = _getAbsoluteOffset(node); | |
23 var clientRect = node.getBoundingClientRect(); | 22 var clientRect = node.getBoundingClientRect(); |
24 div.style.top = offset.top + "px"; | 23 div.style.top = clientRect.top + "px"; |
25 div.style.left = offset.left + "px"; | 24 div.style.left = clientRect.left + "px"; |
26 div.style.width = node.offsetWidth + "px"; | 25 div.style.width = clientRect.width + "px"; |
27 div.style.height = node.offsetHeight + "px"; | 26 div.style.height = clientRect.height + "px"; |
28 | 27 |
29 return div; | 28 return div; |
30 } | 29 } |
31 | |
32 function _getAbsoluteOffset( elem ) | |
33 { | |
34 var offsetLeft = 0; | |
35 var offsetTop = 0; | |
36 do { | |
37 if ( !isNaN( elem.offsetLeft ) ) | |
38 offsetLeft += elem.offsetLeft - elem.scrollLeft; | |
39 | |
40 if ( !isNaN( elem.offsetTop ) ) | |
41 offsetTop += elem.offsetTop - elem.scrollTop; | |
42 | |
43 } while( elem = elem.offsetParent ); | |
44 return { top : offsetTop, | |
45 left : offsetLeft }; | |
46 } | |
OLD | NEW |