util.js 908 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. function getScroll(w) {
  2. var ret = w.pageXOffset;
  3. var method = 'scrollLeft';
  4. if (typeof ret !== 'number') {
  5. var d = w.document;
  6. // ie6,7,8 standard mode
  7. ret = d.documentElement[method];
  8. if (typeof ret !== 'number') {
  9. // quirks mode
  10. ret = d.body[method];
  11. }
  12. }
  13. return ret;
  14. }
  15. function getClientPosition(elem) {
  16. var x;
  17. var y;
  18. var doc = elem.ownerDocument;
  19. var body = doc.body;
  20. var docElem = doc && doc.documentElement;
  21. var box = elem.getBoundingClientRect();
  22. x = box.left;
  23. y = box.top;
  24. x -= docElem.clientLeft || body.clientLeft || 0;
  25. y -= docElem.clientTop || body.clientTop || 0;
  26. return {
  27. left: x,
  28. top: y
  29. };
  30. }
  31. export function getOffsetLeft(el) {
  32. var pos = getClientPosition(el);
  33. var doc = el.ownerDocument;
  34. // Only IE use `parentWindow`
  35. var w = doc.defaultView || doc.parentWindow;
  36. pos.left += getScroll(w);
  37. return pos.left;
  38. }