UNPKG

vue-keep-scroll-position

Version:

A vue 2.0 directive to keep scroll position for keep-alived components.

32 lines (29 loc) 1.14 kB
( -> plugin = (Vue) -> Vue.directive 'keep-scroll-position', bind: (el) -> el.addEventListener 'scroll', (event) -> event.target.setAttribute 'data-vue-keep-scroll-position', event.target.scrollLeft + '-' + event.target.scrollTop return return inserted: (el) -> targets = el.querySelectorAll '[data-vue-keep-scroll-position]' if targets.length > 0 for target in targets pos = target.getAttribute('data-vue-keep-scroll-position').split('-') target.scrollLeft = pos[0] target.scrollTop = pos[1] else if el.hasAttribute 'data-vue-keep-scroll-position' pos = el.getAttribute('data-vue-keep-scroll-position').split('-') el.scrollLeft = pos[0] el.scrollTop = pos[1] return if Vue? then Vue.use plugin if typeof exports is 'object' and typeof module is 'object' module.exports = plugin else if typeof define is 'function' and define.amd define -> plugin else if window? window.VueKeepScrollPosition = plugin )()