12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- if (!dojo._hasResource["dijit._base.scroll"]) { // _hasResource checks added by
- // build. Do not use
- // _hasResource directly in your
- // code.
- dojo._hasResource["dijit._base.scroll"] = true;
- dojo.provide("dijit._base.scroll");
- dijit.scrollIntoView = function(/* DomNode */node) {
- // summary
- // Scroll the passed node into view, if it is not.
- // don't rely on that node.scrollIntoView works just because the
- // function is there
- // it doesnt work in Konqueror or Opera even though the function is
- // there and probably
- // not safari either
- // dont like browser sniffs implementations but sometimes you have to
- // use it
- if (dojo.isIE) {
- // only call scrollIntoView if there is a scrollbar for this menu,
- // otherwise, scrollIntoView will scroll the window scrollbar
- if (dojo.marginBox(node.parentNode).h <= node.parentNode.scrollHeight) { // PORT
- // was
- // getBorderBox
- node.scrollIntoView(false);
- }
- } else if (dojo.isMozilla) {
- node.scrollIntoView(false);
- } else {
- var parent = node.parentNode;
- var parentBottom = parent.scrollTop + dojo.marginBox(parent).h; // PORT
- // was
- // getBorderBox
- var nodeBottom = node.offsetTop + dojo.marginBox(node).h;
- if (parentBottom < nodeBottom) {
- parent.scrollTop += (nodeBottom - parentBottom);
- } else if (parent.scrollTop > node.offsetTop) {
- parent.scrollTop -= (parent.scrollTop - node.offsetTop);
- }
- }
- };
- }
|