今天遇到一个需求说页面顶部的菜单右键弹出框离得有点远
代码是这样
<tabs type="card" closable class="main-tags-col-tabs"
v-model="activetab" @on-click="handleclicktag"
:before-remove="handlebeforeremove"
capture-focus @on-contextmenu="contextmenu">
<tabpane
v-for="(item, index) in taglist"
:key="index"
:name="item.name"
:label="item.label"
icon="custom iconfont icon-dot-circle"
:closable="index != 0"
:context-menu="index == 0 ? false : true"
></tabpane>
<template slot="contextmenu">
<dropdownitem @click.native="handleclosetag('closeother')">
<icon type="md-close"></icon>
<span class="dropdown-icon-space">关闭其他</span>
</dropdownitem>
<dropdownitem @click.native="handleclosetag('closeall')">
<icon type="ios-close-circle-outline"></icon>
<span class="dropdown-icon-space">关闭所有</span>
</dropdownitem>
</template>
</tabs>表现出来是这样

首先打开控制台,找到这个样式是 ivu-dropdown-transfer

发现这个样式是自带了transfer
那么在style里面写scoped 就不会生效,不写的话是全局了又会影响其他地方下拉框
然后去官网找 transfer-class-name 发现tabs没有这个选项
那只能在右键时候动态往里添加了
@on-contextmenu="contextmenu"
contextmenu(item) {
this.$nexttick(() => {
const dropdownmenu = document.queryselector('.ivu-dropdown-transfer')
console.log(dropdownmenu)
if (dropdownmenu) {
dropdownmenu.classlist.add('fixed-context-menu')
}
})
this.contextmenuactivename = item.name
},ivu-dropdown-transfer 这里注意ivu-select-dropdown找不到的好像和下拉框的样式有冲突
然后全局写一个样式
<style>
.fixed-context-menu {
top: 97px !important;
}
</style>到此这篇关于vue+iview tabs context-menu 弹出框修改样式的方法的文章就介绍到这了,更多相关vue+iview tabs context-menu 弹出框内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论