精确实现popover效果:内容超出容器则tooltips+popover展示,反之无效果

本文介绍了如何在前端实现精确控制Popover的展示,特别是在内容超出容器宽度时才显示Tooltip的需求。通过二次封装el-popover组件,利用JavaScript动态计算内容和容器宽度,动态调整disabled属性来达到精确控制。同时,支持单行和多行Tooltip的展示,并提供代码示例和使用方法。
摘要由CSDN通过智能技术生成

前端中对于:“文字超出tooltip展示,鼠标滑过气泡展示所有内容”,这样的需求是很常见的,element-ui也有专门的组件el-popover组件支持类似需求的实现

要实现这样的效果,使用el-popover组件即可。

<el-table-column prop="date" label="原始popover" width="180">
    <template slot-scope="{row}">
       <el-popover placement="top" trigger="hover">
           <p style="max-width: 300px;overflow:auto;word-break:break-all">{
  {row.first}}                        </p>
               <p style="overflow:hidden;text-overflow:ellipsis;white-space:nowrap;" slot="reference"
               >{
  {row.first}}</p>
       </el-popover>
    </template>
</el-table-column>

这样一律不做区分内容长短,全部使用气泡,如果内容没有超出容器,也会有气泡展示,略显粗暴。

这样效果其实并不好,实际需求一般还会有一句:如果不超过容器宽度则不展示气泡。即便产品不指出,前端也应该处理一下。因此再做一点优化,对内容做个判断,字数超出一定值才展示气泡,通过if-else实现

<el-table-column prop="date" label="原始popover" width="180">
    <template slot-scope="{row}">
       <el-popover placement="top" trigger="hover" v-if="row.first.length > 30">
          <p style="max-width: 300px;overflow:auto;word-break:break-all">{
  {row.first}}</p>
          <p style="overflow:hidden;text-overflow:ellipsis;white-space:nowrap;"
              slot="reference">{
  {row.first}}
          </p>
        </el-popover>
	<p v-else>{
  {row.first}}</p>
    </template>
</el-table-column>

或者通过el-popover的disabled属性设置

<el-table-column prop="date" label="原始popover" width="180">
   <template slot-scope="{row}">
      <el-popover :disabled="row.first.length <= 30" placement="bottom" trigger="hover&
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值