项目中需要根据父组件宽度在子组件中生成一个表头不固定的动态table,且不能出现横向滚动,所以需要动态设置cell的宽度。 简单根据 this_.$prent.$refs.getTopWidth.offsetWidth;获取宽度根据表头进行平分设置宽度,测试发现偶发性表格样式错误。在控制台打印获取的宽度 发现宽度会变化立马一脸懵逼,但是需求不能不实现,静心慢慢一点点琢磨。。。。。。猜测是不是父组件未加载完引起的 ,在父组件中用this.$nextTick(function() {})获取宽度,结果凉凉还是变化。经过各种方法均告失败,就不一一赘述。直接上答案: 结果发现 宽度变化每次都是17px ,突然豁然开朗这不就是滚动条宽度吗。因为加载表格后数据量多以后 页面会出现滚动条导致比获取是宽度减少17px。所以只需在获取宽度和表格数据后判断是否出现滚动条进行相应的滚动条宽度即可。

转载于:https://my.oschina.net/bbhan/blog/3009511

Logo

前往低代码交流专区

更多推荐