当前位置:首页 > 编程笔记 > 正文
已解决

滚动条不占位置

来自网友在路上 183883提问 提问时间:2023-11-07 19:28:55阅读次数: 83

最佳答案 问答题库838位专家为你答疑解惑

以Vue + Element Dialog为例,用ResizeObserver监听容器高度变化,当高度大于最大高度(出现滚动条),右边距减去滚动条的宽度,反之恢复正常边距


<el-dialog><div class="dialog_body" v-fix-scroll-bar="this"><slot /></div>
</el-dialog>

export default {data() {return {resizeObserver: null,}},methods: {setScrollBar() {this.resizeObserver = new ResizeObserver((entries) => {for (let entry of entries) {const cr = entry.contentRect;const el_dialog_body = entry.target.parentNode;const maxHeight = window.getComputedStyle(el_dialog_body).maxHeight;if (maxHeight && cr.height > parseInt(maxHeight)) {el_dialog_body.style.paddingRight = "20px";} else {el_dialog_body.style.paddingRight = "32px";}}});},},mounted() {this.setScrollBar();},directives: {fixScrollBar: {inserted: (el, binding) => {const _this = binding.value;_this.resizeObserver.observe(el);},unbind: (el, binding) => {const _this = binding.value;_this.resizeObserver.unobserve(el);},},},
}
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"滚动条不占位置":http://eshow365.cn/6-34687-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!