当前位置: 首页 > wzjs >正文

公司网站一定要备案吗想建一个自己的网站

公司网站一定要备案吗,想建一个自己的网站,公司业绩怎么发到建设厅网站上,网站建设合理化建议方案在开发 Web 应用时,文本溢出是一个常见的问题。当文本内容超出容器宽度或高度时,如何优雅地处理溢出并提供完整的文本信息,是提升用户体验的关键。本文将介绍如何封装一个 Vue.js 组件 TextEllipsisTooltip,它能够处理单行和多行文…

在开发 Web 应用时,文本溢出是一个常见的问题。当文本内容超出容器宽度或高度时,如何优雅地处理溢出并提供完整的文本信息,是提升用户体验的关键。本文将介绍如何封装一个 Vue.js 组件 TextEllipsisTooltip,它能够处理单行和多行文本溢出,并在鼠标悬停时显示完整的文本内容。

一、组件功能概述

TextEllipsisTooltip 组件的主要功能包括:

  1. 单行和多行文本溢出处理:支持通过 maxLines 属性控制文本显示的最大行数。
  2. 动态内容支持:当文本内容动态更新时,组件会自动检测是否溢出。
  3. 响应式设计:支持窗口大小调整,自动重新检测文本是否溢出。
  4. 工具提示显示:当文本溢出时,鼠标悬停会显示完整的文本内容。
  5. 可配置性:通过 props 自定义最大宽度、最大行数、工具提示位置等。

二、组件实现思路

1. 组件结构

组件包含以下部分:

  • 文本容器:用于显示文本,并检测文本是否溢出。
  • 工具提示触发器:用于在鼠标悬停时显示工具提示。
  • 工具提示组件:使用 Element UI 的 el-tooltip 或其他类似组件。

2. 检测文本溢出

通过以下方式检测文本是否溢出:

  • 单行文本:比较 scrollWidthclientWidth
  • 多行文本:使用 CSS 的 line-clamp 属性,并比较 scrollHeightclientHeight

3. 工具提示显示

通过鼠标事件控制工具提示的显示和隐藏:

  • 当鼠标悬停时,显示工具提示。
  • 当鼠标移出时,隐藏工具提示。

4. 响应式设计

监听窗口大小调整事件,重新检测文本是否溢出。

三、组件代码实现

以下是 TextEllipsisTooltip 组件的完整代码实现:

1. 组件模板

<template><divref="textContainer"class="text-ellipsis-tooltip":class="{ 'has-overflow': hasOverflow }":style="{ maxWidth, maxHeight }"@mouseenter="handleMouseEnter"@mouseleave="handleMouseLeave"><div ref="textContent" class="text-content">{{ text }}</div><el-tooltipv-if="hasOverflow && showTooltip":content="text":placement="tooltipPlacement":show-after="showAfter":hide-after="0"><div class="tooltip-trigger" /></el-tooltip></div>
</template>

2. 组件脚本

<script>
export default {name: 'TextEllipsisTooltip',props: {text: {type: String,default: ''},maxWidth: {type: [String, Number],default: '100%'},maxHeight: {type: [String, Number],default: 'auto'},maxLines: {type: Number,default: 1},tooltipPlacement: {type: String,default: 'top'},showAfter: {type: Number,default: 200}},data() {return {hasOverflow: false,showTooltip: false};},watch: {text() {this.$nextTick(() => {this.checkOverflow();});},maxLines() {this.$nextTick(() => {this.checkOverflow();});}},mounted() {this.checkOverflow();window.addEventListener('resize', this.checkOverflow);},beforeDestroy() {window.removeEventListener('resize', this.checkOverflow);},methods: {checkOverflow() {this.$nextTick(() => {const textElement = this.$refs.textContent;const container = this.$refs.textContainer;if (textElement && container) {// 检测单行溢出const isSingleLineOverflow = textElement.scrollWidth > container.clientWidth;// 检测多行溢出const isMultiLineOverflow =this.maxLines > 1 &&textElement.scrollHeight > container.clientHeight;this.hasOverflow = isSingleLineOverflow || isMultiLineOverflow;}});},handleMouseEnter() {if (this.hasOverflow) {this.showTooltip = true;}},handleMouseLeave() {this.showTooltip = false;}}
};
</script>

3. 组件样式

<style scoped lang="scss">
.text-ellipsis-tooltip {position: relative;overflow: hidden;display: inline-block;word-wrap: break-word;.text-content {display: -webkit-box;-webkit-box-orient: vertical;overflow: hidden;text-overflow: ellipsis;word-break: break-all;}&.has-overflow {.text-content {-webkit-line-clamp: v-bind(maxLines);}}.tooltip-trigger {position: absolute;top: 0;left: 0;width: 100%;height: 100%;cursor: help;}
}
</style>

四、使用组件

1. 引入组件

将组件保存为 TextEllipsisTooltip.vue,并在父组件中引入:

import TextEllipsisTooltip from './components/TextEllipsisTooltip.vue';export default {components: {TextEllipsisTooltip}
};

2. 使用组件

在父组件的模板中使用 TextEllipsisTooltip,并传递必要的 props

<template><div><h1>文本溢出工具提示示例</h1><TextEllipsisTooltiptext="这是一段很长的文本,可能会超出容器的宽度。"maxWidth="200px"maxLines="2"tooltipPlacement="top"showAfter="300"/></div>
</template>

3. 自定义样式

如果需要进一步定制样式,可以在父组件中覆盖组件的样式:

.text-ellipsis-tooltip {background-color: #f0f0f0;padding: 5px;border: 1px solid #ccc;.text-content {color: #333;}.tooltip-trigger {cursor: pointer;}
}

五、测试功能

启动项目后,确保以下功能正常:

  1. 单行文本溢出:当文本超出容器宽度时,显示省略号。
  2. 多行文本截断:当文本超出指定行数时,显示省略号。
  3. 工具提示显示:鼠标悬停时,显示完整的文本内容。
  4. 动态内容更新:文本内容动态更新后,工具提示逻辑仍然正确。
  5. 响应式设计:窗口大小调整后,工具提示逻辑仍然正确。

六、总结

TextEllipsisTooltip 组件通过封装文本溢出处理和工具提示功能,提供了一个灵活且易于使用的解决方案。它支持单行和多行文本溢出,并通过 props 提供了高度的可配置性。通过本文的介绍和代码实现,你可以在 Vue.js 项目中快速集成并使用这个组件,提升应用的用户体验。


文章转载自:

http://uX28Ehqh.hmpxn.cn
http://26zYt4X1.hmpxn.cn
http://keSx3XrK.hmpxn.cn
http://SVc9p8Iz.hmpxn.cn
http://ziK0x5Bf.hmpxn.cn
http://FqFlZyAm.hmpxn.cn
http://nYjMPd2W.hmpxn.cn
http://5TifO8OB.hmpxn.cn
http://po2eY2Xm.hmpxn.cn
http://ew6Heddo.hmpxn.cn
http://3jV6tdmC.hmpxn.cn
http://gtzVM6rL.hmpxn.cn
http://dFifnEBB.hmpxn.cn
http://lHKQr387.hmpxn.cn
http://TbCmOc3b.hmpxn.cn
http://R8PFeVjj.hmpxn.cn
http://E3OU5TIJ.hmpxn.cn
http://viMJftw7.hmpxn.cn
http://5vP24ER8.hmpxn.cn
http://a4suTt3U.hmpxn.cn
http://jX88ZSyq.hmpxn.cn
http://mCM4rY1L.hmpxn.cn
http://wEMZr1CI.hmpxn.cn
http://FQzvSZFL.hmpxn.cn
http://F7nxyvev.hmpxn.cn
http://bpiV9XDW.hmpxn.cn
http://7A9c0pST.hmpxn.cn
http://BsD0mscs.hmpxn.cn
http://c3s5xShv.hmpxn.cn
http://vK3BdvSO.hmpxn.cn
http://www.dtcms.com/wzjs/706856.html

相关文章:

  • 云南哪有网站建设报价的南宁营销型网站建设哪家好
  • 自己公司做网站电子商务网站建设课设
  • 单位网站建设的重要性免费的企业网站模板
  • 网络推广外包哪个公司做的比较好全网seo优化电话
  • 侯马建设规划局网站成都 网页设计 兼职
  • 做外贸网站怎么做企业网络平台建设
  • 做a的视频在线观看网站蜘蛛网是个什么网站
  • 做外链那些网站比较好sem是什么意思?
  • 官方网站开发制作山东济南网站制作优化
  • 做网站有自己的服务器杭州建站模板展示
  • 专门做情侣装的网站五大建设是什么内容
  • 网站建设需要多少钱小江网页设计简述搜索引擎优化
  • DW做网站下拉列表怎么做如何给网站弄ftp
  • 深圳网站建设黄浦网络能带描文本外链的网站
  • 域名哪个网站好中国十大外贸上市公司排名
  • 运城建设局网站申请自己邮箱域名
  • 苏州专业做网站比较好的公司新媒体是什么
  • 网站设计制作合同范本做一个网站指定页面的推广
  • 网站制作价格报表企业培训课程一览表
  • 征婚网站上拉业务做恒指期货策划一场网络营销活动
  • 做律师网站推广优化哪家好免费源码大全
  • 网站模板 数据库郑州新闻发布会最新消息今天视频
  • 淘宝客不建立网站怎么做南宁的网站建设
  • 北辰做网站的公司sae wordpress 升级
  • 学做网站需要文化嘛wordpress微博登陆
  • 商丘云网广告有限公司绍兴seo公司
  • 自己站网站皮具网站建设
  • 安县建设局网站全网营销式网站
  • 网站建设柒首先金手指8桥头东莞网站建设
  • 延吉网站建设多少钱二次开发源代码