From 4ce6170a6a30ddf9a1297b0f4bed1bfb7b763e6c Mon Sep 17 00:00:00 2001 From: Asger Hautop Drewsen Date: Sat, 3 Mar 2012 20:15:36 +0100 Subject: [PATCH 1/2] Re-calculate overlay position on each select & don't change element attributes --- ElementContainer.js | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/ElementContainer.js b/ElementContainer.js index ea755c9..6aba456 100644 --- a/ElementContainer.js +++ b/ElementContainer.js @@ -6,34 +6,40 @@ function ElementContainer(ele) { this.element = ele; - this.oldBorder = ele.style.border; - this.oldBgColor = ele.style.background; - this.offsets = this.getOffset(); + //this.oldBorder = ele.style.border; + //this.oldBgColor = ele.style.background; + //this.offsets = this.getOffset(); this.overlay = document.createElement('div'); this.overlay.setAttribute('class','xpathElementOverlay'); - this.overlay.style.left = this.offsets.left+'px'; + /*this.overlay.style.left = this.offsets.left+'px'; this.overlay.style.top = this.offsets.top+'px'; this.overlay.style.width = this.element.offsetWidth+'px'; - this.overlay.style.height = this.element.offsetHeight+'px'; + this.overlay.style.height = this.element.offsetHeight+'px';*/ this.overlay.style.display = 'none'; document.body.appendChild(this.overlay); } ElementContainer.prototype.highlight = function() { - this.element.style.border = 'solid 1px black'; + //this.element.style.border = 'solid 1px black'; //this.element.style.background = 'yellow'; this.overlay.style.display = 'none'; }; ElementContainer.prototype.select = function() { - this.element.style.border = 'solid 1px red'; + this.offsets = this.getOffset(); + this.overlay.style.left = this.offsets.left+'px'; + this.overlay.style.top = this.offsets.top+'px'; + this.overlay.style.width = this.element.offsetWidth+'px'; + this.overlay.style.height = this.element.offsetHeight+'px'; + + //this.element.style.border = 'solid 1px red'; //this.element.style.background = 'red'; this.overlay.style.display = ''; }; ElementContainer.prototype.clear = function() { - this.element.style.border = this.oldBorder; + //this.element.style.border = this.oldBorder; //this.element.style.background = this.oldBgColor; document.body.removeChild(this.overlay); }; From d20ac65cb9e07c285e41de51cc9a7670866974a9 Mon Sep 17 00:00:00 2001 From: Asger Hautop Drewsen Date: Sat, 3 Mar 2012 20:27:19 +0100 Subject: [PATCH 2/2] Fixed scrolling --- ElementContainer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ElementContainer.js b/ElementContainer.js index 6aba456..2595b0f 100644 --- a/ElementContainer.js +++ b/ElementContainer.js @@ -49,8 +49,8 @@ ElementContainer.prototype.getOffset = function() { var _x = 0; var _y = 0; while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) ) { - _x += el.offsetLeft - el.scrollLeft; - _y += el.offsetTop - el.scrollTop; + _x += el.offsetLeft; //- el.scrollLeft; + _y += el.offsetTop; //- el.scrollTop; el = el.offsetParent; } return { top: _y, left: _x };