javascript element-ui@1.x版动态隐藏表格固定列边样式的指令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript element-ui@1.x版动态隐藏表格固定列边样式的指令相关的知识,希望对你有一定的参考价值。
const ElementTableCtx = '__ElementTableCtx';
function setShadowStyle(els, style) {
for (const el of els) {
el.style.boxShadow = style;
}
}
export default function install(Vue) {
Vue.directive('dynamic-fixed-column', {
bind(el, binding) {
function onScroll() {
const { fixedEls, fixedRightEls, maxScrollWidth } = el[ElementTableCtx];
let shadowStyle = null;
if (this.scrollLeft === 0) {
shadowStyle = 'none';
} else {
shadowStyle = null;
}
setShadowStyle(fixedEls, shadowStyle);
if (this.scrollLeft === maxScrollWidth) {
shadowStyle = 'none';
} else {
shadowStyle = null;
}
setShadowStyle(fixedRightEls, shadowStyle);
}
const bodyWrapper = el.querySelector('.el-table__body-wrapper');
bodyWrapper.addEventListener('scroll', onScroll);
el[ElementTableCtx] = {
onScroll,
expression: binding.expression,
fixedEls: [],
fixedRightEls: [],
scrollEl: bodyWrapper,
maxScrollWidth: 0,
inited: false
};
},
componentUpdated(el) {
const { scrollEl } = el[ElementTableCtx];
// if (inited) {return }
const fixedEls = el.querySelectorAll('.el-table__fixed');
const fixedRightEls = el.querySelectorAll('.el-table__fixed-right');
if (fixedEls.length) {
const maxScrollWidth = scrollEl.scrollWidth - scrollEl.clientWidth;
el[ElementTableCtx].inited = true;
el[ElementTableCtx].fixedEls = fixedEls;
el[ElementTableCtx].fixedRightEls = fixedRightEls;
el[ElementTableCtx].maxScrollWidth = maxScrollWidth;
setShadowStyle(fixedEls, 'none');
}
},
unbind(el) {
const { scrollEl, onScroll } = el[ElementTableCtx];
scrollEl.removeEventListener('scroll', onScroll);
}
});
}
以上是关于javascript element-ui@1.x版动态隐藏表格固定列边样式的指令的主要内容,如果未能解决你的问题,请参考以下文章
javascript element-ui@1.x版本,如果需要把表第一列作为汇总列,并且表格高度大于屏幕高度,向下滚动式使第一行固定在屏幕顶部
解决elemnt-ui安装后运行报错的问题
element-ui 组件扩展 - dialog嵌套问题
JavaScript介绍
javascript的题。
javascript JavaScript isset()等效: - JavaScript