首页 > 其他分享 >vue-封装组件-超出部分限制...,并且提示

vue-封装组件-超出部分限制...,并且提示

时间:2023-05-29 11:46:11浏览次数:33  
标签:... vue 封装 weight content width 宽度 const ev

显示效果

 代码:

<template>
        <div class="tip">
            <el-tooltip :content="content" placement="top" width="400" :disabled="!isShowTooltip">
                <span class="member-label member-span text-hidden" @mouseenter="visibilityChange($event)">{{ props.content }}</span>
            </el-tooltip>
        </div>
</template>
<script setup lang="ts" name="textEllipsis">
import { defineProps, ref } from 'vue';
const props = defineProps({
    content: String,
});
const isShowTooltip = ref(false);
const visibilityChange = (event: any) => {
    const ev = event.target;
    const ev_weight = ev.scrollWidth; // 文本的实际宽度   scrollWidth:对象的实际内容的宽度,不包边线宽度,会随对象中内容超过可视区后而变大。
    const content_weight = ev.clientWidth; // 文本的可视宽度 clientWidth:对象内容的可视区的宽度,不包滚动条等边线,会随对象显示大小的变化而改变。
    // const content_weight = this.$refs.tlp.$el.parentNode.clientWidth; // 文本容器宽度(父节点)
    if (ev_weight > content_weight) {
        // 实际宽度 > 可视宽度  文字溢出
        isShowTooltip.value = true;
    } else {
        // 否则为不溢出
        isShowTooltip.value = false;
    }
};
</script>
<style scoped lang="scss">
.tip {
    width: 100%;
    .text-hidden {
        display: inline-block;
        width: 100%;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
    }
    :deep(.el-tooltip__popper) {
        max-width: 100px;
    }
}
</style>
<style lang="scss">
.el-popper {
    max-width: 400px !important;
}
</style>

 

标签:...,vue,封装,weight,content,width,宽度,const,ev
From: https://www.cnblogs.com/tdcqcrtd/p/17440015.html

相关文章

  • vue中el-select 多选限制条件(根据不同选项进行不同可选可不选)
    首先看一个数据结构:1:无缺陷2:有缺陷-》缺陷1,缺陷2,缺陷33:审核不通过把它们集成到一个平面数据,进行下拉所选就变成了:1:无缺陷,2:审核不通过,3:缺陷一,4:缺陷二,5:缺陷三。因为字典项是个平面的,所以在类似的大批量的情况下,有缺陷这个类如果还按照这种结构除非自己去归类。想要直接映射到......
  • vue3学习中使用vue-router@4的问题Invalid VNode type: undefined (undefined)
    首先是按照常规的箭头函数引入的方法,结果报一下错误,且页面报错constHelloWorld=()=>import('../components/HelloWorld.vue'); 解决办法import{defineAsyncComponent}from'vue'constHelloWorld=defineAsyncComponent(()=>import('../components/HelloWorld.vue......
  • 基于JAVA的springboot+vue摄影跟拍预定管理系统,附源码+数据库+论文+PPT
    1、项目介绍困扰管理层的许多问题当中,摄影跟拍预定管理一定是不敢忽视的一块。但是管理好摄影跟拍预定又面临很多麻烦需要解决,例如有几个方面:第一,往往用户人数都比较多,如何保证能够管理到每一用户;第二,如何在工作琐碎,记录繁多的情况下将摄影跟拍预定的当前情况反应给领导......
  • vue3.0 study
    1、newVue->create(vue)2.03.02、setup函数是CompositionAPI(组合API)的入口<script>exportdefault{name:'App',setup(){letname='流星'letage=18//方法functionsay(){console.log(`我叫${name},今年${age}岁`......
  • 从功能测试转到自动化测试,我的测试之路“狂飙”~20k...
    前言手动功能测试人员应该权衡测试自动化相对于功能测试的好处,并且即可开始行动。现在随着测试行业的发展,自动化测试已经成为每个测试人的标配技能了。如何从功能测试到自动化测试转换。1、查找合适的自动化测试用例自动化测试在重复测试中发挥着极其重要的作用。可以在下表中......
  • 通过this(...)调用兄弟构造器的作用
    packagecom.Demo1;publicclassTest{publicstaticvoidmain(String[]args){//掌握在类的构造器中,通过this(...)调用兄弟构造器的作用Students1=newStudent("李四",26,"家里蹲大学");//如果学生没有学校,那么学校默认就是黑马程序员......
  • jQuery库的初次封装
    1.  AJAX代码封装  22-26- AJAX请求相关的代码都是类似的,有很多重复的代码,这些重复的代码能不能不写,能不能封装一个工具类。要发送ajax请求的话,就直接调用这个工具类中的相关函数即可。- 接下来,手动封装一个工具类,这个工具类我们可以把它看做是一个JS的库。我们把这个JS库起......
  • css实现多行文字超长,显示..., 添加展开,收起
    效果如下:展开的样式:Alevel小程序,页面路径:pages/contestDetail/contestDetail实现思路:展开,收起分别写两套样式收起:展开:xml代码:<viewclass="text-expansion"wx:if="{{!showDes}}"><viewclass="text-expansion__text">......
  • Java语言实现的springBoot汽车销售管理系统vue前端
    技术架构技术框架:springboot+mybatis+Mysql5.7+vue2+npm+node运行环境:jdk8+IntelliJIDEA+maven+宝塔面板宝塔部署教程解析一个域名,使用vscode打开front目录,修改/config/prod.env.js文件里的BASE_API字段为解析好的线上域名,执行npmrunbuild:prod打包出......
  • SpringBoot+vue使用bcrypt对注册密码加密及登录校验
    一、注册1.后端在pom.xml文件中加入<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-crypto</artifactId></dependency>lombok依赖<dependency><groupId>org.projectlombok......