get-scroll-offset.js 855 B

1234567891011121314151617181920212223242526272829303132
  1. /**
  2. * Get the scroll offset of the document passed in
  3. * @method getScrollOffset
  4. * @memberof axe.commons.dom
  5. * @instance
  6. * @param {Document} element The element to evaluate, defaults to document
  7. * @return {Object} Contains the attributes `x` and `y` which contain the scroll offsets
  8. */
  9. function getScrollOffset(element) {
  10. if (!element.nodeType && element.document) {
  11. element = element.document;
  12. }
  13. // 9 === Node.DOCUMENT_NODE
  14. if (element.nodeType === 9) {
  15. var docElement = element.documentElement,
  16. body = element.body;
  17. return {
  18. left:
  19. (docElement && docElement.scrollLeft) || (body && body.scrollLeft) || 0,
  20. top: (docElement && docElement.scrollTop) || (body && body.scrollTop) || 0
  21. };
  22. }
  23. return {
  24. left: element.scrollLeft,
  25. top: element.scrollTop
  26. };
  27. }
  28. export default getScrollOffset;