Browse Source

scrollIntoView: Skip overflow:hidden elements

Rob Wu 11 years ago
parent
commit
3e363ae307
  1. 7
      web/ui_utils.js

7
web/ui_utils.js

@ -116,13 +116,14 @@ function scrollIntoView(element, spot) {
// hidden iframe or object). We have to scroll: if the offsetParent is not set // hidden iframe or object). We have to scroll: if the offsetParent is not set
// producing the error. See also animationStartedClosure. // producing the error. See also animationStartedClosure.
var parent = element.offsetParent; var parent = element.offsetParent;
var offsetY = element.offsetTop + element.clientTop;
var offsetX = element.offsetLeft + element.clientLeft;
if (!parent) { if (!parent) {
console.error('offsetParent is not set -- cannot scroll'); console.error('offsetParent is not set -- cannot scroll');
return; return;
} }
while (parent.clientHeight === parent.scrollHeight) { var offsetY = element.offsetTop + element.clientTop;
var offsetX = element.offsetLeft + element.clientLeft;
while (parent.clientHeight === parent.scrollHeight ||
getComputedStyle(parent).overflow === 'hidden') {
if (parent.dataset._scaleY) { if (parent.dataset._scaleY) {
offsetY /= parent.dataset._scaleY; offsetY /= parent.dataset._scaleY;
offsetX /= parent.dataset._scaleX; offsetX /= parent.dataset._scaleX;

Loading…
Cancel
Save