Vue如何获取子元素的宽度总和

发布于 2022-09-13 00:22:22 字数 1941 浏览 12 评论 0

如图所示:

父元素通过 flex-grow: 1 获取了宽度,子元素(导航栏)的总体宽度超出了父元素的宽度,在这种情况下,想要实现如下结果:

根据父元素的宽度展示指定个数的子元素,根据图片实际情况,导航栏只展示到 预留导航4位置,剩下的不显示?

<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect">
    <el-menu-item index="1"><i class="el-icon-s-home"></i><span>首页</span></el-menu-item>
        <template v-for="item in menuItems" :key="item.index">
        <el-menu-item :index="item.index" ref="navMenuItem">
            <i class="el-icon-s-tools"></i>
            <span>{{ item.name }}</span>
        </el-menu-item>
    </template>
</el-menu>

<script>
    export default {
        data() {
            return {
            menuItems: [{
                    index: "2",
                    name: '预留导航1'
                }, {
                    index: "3",
                    name: '预留导航2'
                }, {
                    index: "4",
                    name: '预留导航3'
                }, {
                    index: "5",
                    name: '预留导航4'
                }, {
                    index: "6",
                    name: '预留导航5'
                }, {
                    index: "7",
                    name: '预留导航6'
                }, {
                    index: "8",
                    name: '预留导航7'
                }, {
                    index: "9",
                    name: '预留导航8'
                }, {
                    index: "10",
                    name: '预留导航9'
                }, {
                    index: "11",
                    name: '预留导航10'
                }, {
                    index: "12",
                    name: '预留导航11'
                }, {
                    index: "13",
                    name: '预留导航12'
                }]
            };
        },
    },

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

長街聽風 2022-09-20 00:22:22

ref父元素拿到dom之后用js获取子元素宽度哇,然后根据宽度算你第N个子元素后不显示

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文