datepicker: use draft getClientRects, works (better) on ff, ie, webkit - jscancer - Javascript crap (relatively small)
(HTM) git clone git://git.codemadness.org/jscancer
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 4b633a3a0d2361d17515a108f97b04ca829ec732
(DIR) parent 2f59a2607931adbfda644713662b2eace4c3e220
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Thu, 1 Jun 2017 19:54:17 +0200
datepicker: use draft getClientRects, works (better) on ff, ie, webkit
Diffstat:
M datepicker/datepicker.js | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)
---
(DIR) diff --git a/datepicker/datepicker.js b/datepicker/datepicker.js
@@ -77,18 +77,11 @@ function datepicker_init(input) {
table.hidden = false;
table.style.display = "table";
table.style.position = "absolute";
- var left = 0, top = 0;
- for (var c = input; c; c = c.offsetParent) {
- left += c.offsetLeft;
- top += c.offsetTop;
- if (c.style.position == "fixed") {
- left += window.pageXOffset;
- top += window.pageYOffset;
- break;
- }
+ var r = input.getClientRects() || [];
+ if (r.length) {
+ table.style.left = String(r[0].left + window.pageXOffset) + "px";
+ table.style.top = String(r[0].top + input.offsetHeight + window.pageYOffset) + "px";
}
- table.style.left = String(left) + "px";
- table.style.top = String(top + input.offsetHeight) + "px";
// scroll if outside window.
input.scrollIntoView();
};