scroll-into-view.js 763 B

123456789101112131415161718192021222324252627282930
  1. 'use strict';
  2. exports.__esModule = true;
  3. exports.default = scrollIntoView;
  4. var _vue = require('vue');
  5. var _vue2 = _interopRequireDefault(_vue);
  6. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  7. function scrollIntoView(container, selected) {
  8. if (_vue2.default.prototype.$isServer) return;
  9. if (!selected) {
  10. container.scrollTop = 0;
  11. return;
  12. }
  13. var top = selected.offsetTop;
  14. var bottom = selected.offsetTop + selected.offsetHeight;
  15. var viewRectTop = container.scrollTop;
  16. var viewRectBottom = viewRectTop + container.clientHeight;
  17. if (top < viewRectTop) {
  18. container.scrollTop = top;
  19. } else if (bottom > viewRectBottom) {
  20. container.scrollTop = bottom - container.clientHeight;
  21. }
  22. }