zcloud-ui
Version:
A Component Library for Vue.js.
27 lines (26 loc) • 702 B
JavaScript
import { debounce } from 'lodash';
const autoHeigth = (el, binding, vnode) => {
let clientTop = el && el.getBoundingClientRect().top;
let limitH = Number(binding.value) || 0;
let elHeight = window.innerHeight - clientTop - limitH - 30;
el.style.height = elHeight + 'px';
};
const debounceFunc = debounce(autoHeigth, 500);
const listener = (...rest) => {
debounceFunc(...rest);
};
export default {
bind (...rest) {
autoHeigth(...rest);
window.addEventListener('resize', listener.bind(this, ...rest));
},
inserted (...rest) {
autoHeigth(...rest);
},
update (...rest) {
autoHeigth(...rest);
},
unbind () {
window.removeEventListener('resize', listener);
}
};