vuetify
Version:
Vue.js 2 Semantic Component Framework
42 lines (35 loc) • 1.25 kB
JavaScript
import { addOnceEventListener } from '../../util/helpers';
export default function () {
var expandedParentClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
return {
enter: function enter(el, done) {
el._parent = el.parentNode;
addOnceEventListener(el, 'transitionend', done);
// Get height that is to be scrolled
el.style.overflow = 'hidden';
el.style.height = 0;
el.style.display = 'block';
expandedParentClass && el._parent.classList.add(expandedParentClass);
setTimeout(function () {
return el.style.height = el.scrollHeight + 'px';
}, 100);
},
afterEnter: function afterEnter(el) {
el.style.overflow = null;
el.style.height = null;
},
leave: function leave(el, done) {
// Remove initial transition
addOnceEventListener(el, 'transitionend', done);
// Set height before we transition to 0
el.style.overflow = 'hidden';
el.style.height = el.offsetHeight + 'px';
setTimeout(function () {
return el.style.height = 0;
}, 100);
},
afterLeave: function afterLeave(el) {
expandedParentClass && el._parent.classList.remove(expandedParentClass);
}
};
}