diff options
author | Steven Wittens <steven@10.no-reply.drupal.org> | 2006-02-07 02:29:06 +0000 |
---|---|---|
committer | Steven Wittens <steven@10.no-reply.drupal.org> | 2006-02-07 02:29:06 +0000 |
commit | d67a0503470dab86995196905494e47797ab0563 (patch) | |
tree | c139771614fb445a38a17ec6da96fe0645bc0108 /misc | |
parent | dbdca484c1a5198e9ce5ba3c8a0680b2d265f67d (diff) | |
download | brdo-d67a0503470dab86995196905494e47797ab0563.tar.gz brdo-d67a0503470dab86995196905494e47797ab0563.tar.bz2 |
- #39674: Scroll fieldsets into view when expanding them
Diffstat (limited to 'misc')
-rw-r--r-- | misc/collapse.js | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/misc/collapse.js b/misc/collapse.js index 2f5c8dc06..387bf376f 100644 --- a/misc/collapse.js +++ b/misc/collapse.js @@ -20,6 +20,9 @@ function collapseAutoAttach() { a.href = '#'; a.onclick = function() { toggleClass(this.parentNode.parentNode, 'collapsed'); + if (!hasClass(this.parentNode.parentNode, 'collapsed')) { + collapseScrollIntoView(this.parentNode.parentNode); + } this.blur(); return false; }; @@ -48,3 +51,16 @@ function collapseEnsureErrorsVisible(fieldset) { } } } + +function collapseScrollIntoView(node) { + var h = self.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0; + var offset = self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; + var pos = absolutePosition(node); + if (pos.y + node.scrollHeight > h + offset) { + if (node.scrollHeight > h) { + window.scrollTo(0, pos.y); + } else { + window.scrollTo(0, pos.y + node.scrollHeight - h); + } + } +} |