vue、element-ui使用el-tooltip判断文本是否溢出

这篇具有很好参考价值的文章主要介绍了vue、element-ui使用el-tooltip判断文本是否溢出。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.需求:需要实现文本单行显示,超出时,使用省略号,划过该文本时使用tooltip显示全部文本。需要考虑数据是由接口动态获取,只有溢出文本鼠标滑过时显示全部文本,没有溢出的则不需要。

2.实现:

第一步:首先要判断文本是否溢出

这里网上可以找到很多方法,我是用scrollWidth去拿到实际文本长度,跟clientWidth文本可视宽度作比较。需要注意的是我遇到了一个问题,即

判断文本溢出之前一定要使用单行文件溢出显示省略号的css,并且要加在tooltip内部要溢出隐藏的span上,不然scrollWidth和clientWidth会一直为0

 onMouseOver(event) {
      const ev = event.target;
      const evWeight = ev.scrollWidth;
      const contentWidth = ev.clientWidth;
      if (evWeight > contentWidth) {
        this.isShowTooltip = false;
      } else {
        this.isShowTooltip = true;
      }
    },
    <el-row v-for="(row, rowIndex) in djnumberOfRows" :key="rowIndex">
              <el-col
                v-for="(column, colIndex) in row.length"
                :key="colIndex"
                :span="
                  calculateSpan(row, rowIndex, djnumberOfRows.length, colIndex)
                "
              >
                <template v-if="row[colIndex]">
                  <el-form-item class="radioClass" :label="row[colIndex].name">
                    <el-tooltip
                      :content="djForm ? djForm[row[colIndex].fieldskey] : ''"
                      :disabled="isShowTooltip"
                      placement="top"
                    >
                      <div
                        @mouseover="onMouseOver($event)"
                        style="
                          white-space: nowrap;
                          overflow: hidden;
                          text-overflow: ellipsis;
                        "
                      >
                        {{ djForm ? djForm[row[colIndex].fieldskey] : '' }}   //之前我在这里包了一层span,是错误的,会导致拿到的不准,有的是0,有的地方不是,因为span有范围。为什么会在这加一层span,用div,因为省略号
                      </div>
                    </el-tooltip>
                  </el-form-item>
                </template>
              </el-col>
            </el-row>

补充:(未试)文章来源地址https://www.toymoban.com/news/detail-810411.html

methods: {
  onMouseOver (str) { // 内容超出,显示文字提示内容
      const tag = this.$refs[str]
      const parentWidth = tag.parentNode.offsetWidth // 获取元素父级可视宽度
      const contentWidth = tag.offsetWidth // 获取元素可视宽度
      this.isShowTooltip = contentWidth <= parentWidth

  }
}

到了这里,关于vue、element-ui使用el-tooltip判断文本是否溢出的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Vue2.0仿Element UI的el-tooltip实现一个气泡框组件,支持多数据类型的显示和内容为空时不显示气泡框

    场景:因为有个需求就是鼠标经过可多选的 el-select 选择器时,需要有个气泡框显示已选的内容,其实 el-tooltip 气泡框可以满足需求,就是用 el-tooltip 气泡框来包裹 el-select 选择器,但是当选择器一个也没选中,即内容为空时不应该也显示气泡框,有点影响美观。应该就是若内

    2024年02月13日
    浏览(48)
  • 【Element UI】解决el-tooltip组件在鼠标快速移动场景下出现的残影问题

    当我们把el-tooltip组件直接拿来和el-table组件使用的时候,鼠标上下快速移动会出现如图残影和渐变消失的问题 如下图: 所以我们去看一下官网 我们这时候试一试将 transition 属性设置为空 代码如下: 发现渐变消失是解决了但是并没有解决鼠标快速移动产生残影的问题 最终代

    2024年02月19日
    浏览(44)
  • vue3中如何使用el-tooltip中的插槽达到换行效果

    el-tooltip的content属性中的内容可以使用插槽来替换 话不多说,直接上代码 最后放上效果对比图,如果觉得有帮到你,可以给我一个赞吗😜 没换行前的效果 换行后的效果

    2024年02月10日
    浏览(53)
  • element-ui tooltip的使用

    在项目的开发中,有好多地方都需要对页面标签添加一些备注信息,方便用户可以更深入的了解内容的含义。 element-ui中就用tooltip的使用,用起来很方便,且可以调整提示文字出现的文字,官方地址如下: 官方地址 实现效果如下图所示:  简单的主要代码如下: 使用 conte

    2024年02月11日
    浏览(38)
  • 自定义vue指令,实现el-tooltip仅在文字溢出时显示,文字未溢出则不显示,复制即可使用

    在项目里遇到了这种需求,想到el-table里的show-overflow-tooltip属性就有这种效果,在参考了一些网上的文章以及show-overflow-tooltip跟el-tooltip的源码后,觉得使用自定义指令的方式来实现这个需求会很方便,于是便有了以下代码 2.1. 默认无参数用法 没有传递值给指令的时候,将使用

    2024年02月04日
    浏览(48)
  • vue使用element-ui,el-table不显示

    例如:新增了一个表格,按官网代码贴过来的,结果一直不显示 代码如下一模一样,其他数据正常显示,就表格不显示 其实版本库不一致导致的,贼坑,又不提示 先卸载element-ui安装一个低版本的element-ui就可以解决``

    2024年02月11日
    浏览(66)
  • Vue, Element-UI 滚动条: el-scrollbar 基本使用

    参与修改前端项目(Vue, Element-UI),添加用户体验性需求,只涉及页面UI,未涉及数据交互 为一个窗口添加滑动栏 使用el-scrollbar 框架 注意 1,默认xy都有滑动栏,添加以下代码可以隐藏x轴的滑动栏 2,style中 1). 必须去掉scoped,否则overflow-x: hidden失效 2.)外包一个div 来减少

    2024年02月15日
    浏览(41)
  • vue3中el-tooltip的样式修改不生效

    如下代码中,无论如何修改el-tooltip的样式,都不能生效 原因如下:         element-plus中, tl-tooltip的dom结构默认是 被追加 在 body 下的,故在app结构下的样式修改是不生效的;具体解决方法如下: 方法一: 将 “teleported”属性设置为false ,这样,默认则会不被追加到 append

    2024年02月13日
    浏览(53)
  • element-ui在table中使用tooltip

    element-ui官网上提供了tooltip-effect和show-overflow-tooltip属性   使用table中的tooltip-effect属性, el-table 标签上 加 tooltip-effect=\\\"light\\\" el-table-column标签上 加 :show-overflow-tooltip=\\\"true\\\" 如下所示 效果图如下:

    2024年02月11日
    浏览(50)
  • vue使用element-ui的el-image的src问题

    起初: 今天在学习vue的时候,遇到了一个问题,vue学的马马虎虎,语法也不扎实。遇到的问题在这里记录下来。 问题: 是使用el-image的src链接问题。 文件结构是这样的:  按照以往学习html的思想,在使用el-image标签的时候src我写成了src=\\\"../image/Anonymous.png\\\"。乍一看没什么问题

    2024年02月13日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包