亚洲三级在线,国产黄色网址在线观看,www.天天操,污视频在线观看网站

      <menuitem id="xujay"><address id="xujay"></address></menuitem><bdo id="xujay"></bdo>
      <track id="xujay"></track>

      位置: IT常識 - 正文

      自定義vue指令,實現(xiàn)el-tooltip僅在文字溢出時顯示,文字未溢出則不顯示,復(fù)制即可使用(vue3自定義指令)

      編輯:rootadmin
      自定義vue指令,實現(xiàn)el-tooltip僅在文字溢出時顯示,文字未溢出則不顯示,復(fù)制即可使用 一、寫在開頭

      推薦整理分享自定義vue指令,實現(xiàn)el-tooltip僅在文字溢出時顯示,文字未溢出則不顯示,復(fù)制即可使用(vue3自定義指令),希望有所幫助,僅作參考,歡迎閱讀內(nèi)容。

      文章相關(guān)熱門搜索詞:vue3.0自定義指令,vuejs自定義指令,自定義vue指令,vuecli自定義指令,vue3自定義指令,自定義vue指令,vue3.0自定義指令,自定義vue指令,內(nèi)容如對您有幫助,希望把文章鏈接給更多的朋友!

      在項目里遇到了這種需求,想到el-table里的show-overflow-tooltip屬性就有這種效果,在參考了一些網(wǎng)上的文章以及show-overflow-tooltip跟el-tooltip的源碼后,覺得使用自定義指令的方式來實現(xiàn)這個需求會很方便,于是便有了以下代碼

      二、自定義指令代碼1、創(chuàng)建一個js文件,復(fù)制粘貼以下代碼即可使用,無需改動import Vue from 'vue'import debounce from 'throttle-debounce/debounce'import { Tooltip } from 'element-ui'Vue.use(Tooltip)/*** 指令功能:元素內(nèi)容溢出隱藏時懸浮tooltip展示詳細(xì)內(nèi)容,元素內(nèi)容未溢出時不展示* 基于element-table的show-overflow-tooltip原理與el-tooltip的功能實現(xiàn)* 使用方式:* <div v-overflow-tooltip>這是一段會溢出的文本內(nèi)容</div>** 指令也可傳遞參數(shù),參數(shù)內(nèi)容為el-tooltip的參數(shù)配置:* <div v-overflow-tooltip="{content:'啦啦啦啦~~~'}">這是一段會溢出的文本內(nèi)容</div>* *//*** tooltipVM —— el-tooltip的VNode實例* tooltipContent —— 默認(rèn)提示文本內(nèi)容* props —— el-tooltip的配置參數(shù)* ctx —— 命名空間* activateTooltip —— el-tooltip展開的防抖延遲,默認(rèn)50ms* */let tooltipContentlet propsconst ctx = '@@store'// 創(chuàng)建一個Vue實例并渲染為真實DOM,內(nèi)有一個空的el-tooltip組件const vm = new Vue({render (h) {return (<Tooltip ref="customToolTipRef" content={ tooltipContent } { ...{ props } }></Tooltip>)}}).$mount()const tooltipVM = vm.$refs.customToolTipRefconst activateTooltip = debounce(50, tooltipVM => tooltipVM.handleShowPopper())const overflowHandler = (el, binding, vnode) => {// 獲取元素文本內(nèi)容,作為el-tooltip的默認(rèn)content進行展示el[ctx].tooltipContent = el.innerText || el.textContent// 獲取通過指令接收的綁定值el[ctx].props = { ...binding.value }const computedStyle = getComputedStyle(el)// 使用range對象判斷文本是否有溢出,優(yōu)先考慮使用range對象, 因為 scrollWidth 屬性在火狐瀏覽器 v32 版本中有 bug。當(dāng)元素的 CSS 屬性中使用了 text-overflow: ellipsis 和 box-sizing: border-box 時獲取到的 scrollWidth 的值會比真實值偏小const range = document.createRange()range.setStart(el, 0)range.setEnd(el, el.childNodes.length)const rangeDOM = range.getBoundingClientRect()const padding = parseInt(computedStyle.paddingLeft.replace('px', '')) + parseInt(computedStyle.paddingRight.replace('px', ''))const rangeWidth = Math.round(rangeDOM.width)if (rangeWidth + padding > el.offsetWidth || el.scrollWidth > el.offsetWidth) {// 文本溢出了,綁定鼠標(biāo)事件el.addEventListener('mouseenter', el[ctx].handleMouseEnter)el.addEventListener('mouseleave', el[ctx].handleMouseLeave)} else {// 文本未溢出,移除鼠標(biāo)事件el.removeEventListener('mouseenter', el[ctx].handleMouseEnter)el.removeEventListener('mouseleave', el[ctx].handleMouseLeave)}}Vue.directive('overflowTooltip', {// 只調(diào)用一次,指令第一次綁定到元素時調(diào)用。在這里進行一次初始化設(shè)置,初始化鼠標(biāo)事件,控制el-tooltip的展開與收起bind: function (el, binding, vnode) {el[ctx] = {tooltipContent: '',props: {},handleMouseEnter: () => {// 展開el-tooltip方法,將el-tooltip的引用元素指向當(dāng)前綁定節(jié)點,然后執(zhí)行展開邏輯tooltipContent = el[ctx].tooltipContentprops = el[ctx].propsvm.$forceUpdate()tooltipVM.referenceElm = eltooltipVM.$refs.popper && (tooltipVM.$refs.popper.style.display = 'none')tooltipVM.doDestroy()tooltipVM.setExpectedState(true)activateTooltip(tooltipVM)},handleMouseLeave: () => {// 關(guān)閉el-tooltip方法,銷毀內(nèi)部popperJS的實例后走關(guān)閉邏輯tooltipVM.doDestroy()tooltipVM.setExpectedState(false)tooltipVM.handleClosePopper()}}},inserted: overflowHandler,componentUpdated: overflowHandler,unbind (el) {delete el[ctx]}})2、使用方法2.1. 默認(rèn)無參數(shù)用法自定義vue指令,實現(xiàn)el-tooltip僅在文字溢出時顯示,文字未溢出則不顯示,復(fù)制即可使用(vue3自定義指令)

      沒有傳遞值給指令的時候,將使用el-tooltip的默認(rèn)配置,提示內(nèi)容默認(rèn)顯示指令綁定元素的文本內(nèi)容

      <el-input v-model="value" placeholder="請輸入內(nèi)容" style="width: 200px; margin-bottom: 25px"></el-input><div v-overflow-tooltip class="overflow">{{ value }}</div>

      默認(rèn)效果

      2.2. 自定義傳遞參數(shù)用法

      參數(shù)內(nèi)容其實就是el-tooltip官方定義可以傳遞的配置參數(shù),我們可以自定義內(nèi)容、主題、顯示位置等

      <el-input v-model="value" placeholder="請輸入內(nèi)容" style="width: 200px; margin-bottom: 25px"></el-input><div v-overflow-tooltip="{content:'這是通過content自定義的溢出顯示內(nèi)容',effect:'light'}" class="overflow">{{ value }}</div>

      自定義參數(shù)效果

      三、實現(xiàn)原理簡述

      不了解自定義指令的小伙伴可以看一下我在文末分享的鏈接。

      最開始我們需要創(chuàng)建一個tooltip的vue實例,以及其他的一些空變量為后續(xù)內(nèi)容做準(zhǔn)備。此處為了方便,vue實例中使用了JSX語法,大家可以根據(jù)需求更換為h函數(shù)(createElement)的寫法。

      本文鏈接地址:http://jsrtzm.cn/zhishi/284052.html 轉(zhuǎn)載請保留說明!

      上一篇:如何像專業(yè)人員那樣在openSUSE上安裝和更新軟件?opensuse安裝軟件詳細(xì)教程(如何使專業(yè)人員的工作卓有成效讀后感悟)

      下一篇:YOLOv5/v8改進主干GhostNetV2系列:首發(fā)結(jié)合最新NIPS2022華為諾亞的GhostNetV2 架構(gòu):引入長距離注意力機制增強廉價操作,構(gòu)建更強端側(cè)輕量型骨干,打造高效輕量級檢測器(改進yolov4)

    1. 如何恰到好處地進行軟文推廣,軟文推廣的影響力(如何恰到好處地裝病)

      如何恰到好處地進行軟文推廣,軟文推廣的影響力(如何恰到好處地裝病)

    2. 怎么用視頻號發(fā)長視頻到朋友圈(怎么用視頻號發(fā)長視頻)

      怎么用視頻號發(fā)長視頻到朋友圈(怎么用視頻號發(fā)長視頻)

    3. 微信的發(fā)現(xiàn)頁管理在哪里(微信的發(fā)現(xiàn)頁管理里面沒有視頻號怎么辦)

      微信的發(fā)現(xiàn)頁管理在哪里(微信的發(fā)現(xiàn)頁管理里面沒有視頻號怎么辦)

    4. iPhone 12后置像素多少(iphone 12后置攝像頭像素)

      iPhone 12后置像素多少(iphone 12后置攝像頭像素)

    5. 筆記本無線網(wǎng)絡(luò)不可用的原因(筆記本無線網(wǎng)絡(luò)開關(guān)不見了)

      筆記本無線網(wǎng)絡(luò)不可用的原因(筆記本無線網(wǎng)絡(luò)開關(guān)不見了)

    6. 淘寶活動日有哪些(淘寶的活動都是哪些天)

      淘寶活動日有哪些(淘寶的活動都是哪些天)

    7. 閑魚屏蔽全部商品多久恢復(fù)(閑魚屏蔽全部商品怎么弄)

      閑魚屏蔽全部商品多久恢復(fù)(閑魚屏蔽全部商品怎么弄)

    8. 火車票訂單取消三次還可以買票嗎(火車票訂單取消了但付款成功)

      火車票訂單取消三次還可以買票嗎(火車票訂單取消了但付款成功)

    9. 手機微信屏幕變黑色怎么辦(手機微信屏幕變成黑白色怎樣調(diào)回來)

      手機微信屏幕變黑色怎么辦(手機微信屏幕變成黑白色怎樣調(diào)回來)

    10. 路由器的賬號是什么(路由器的賬號是手機號嗎)

      路由器的賬號是什么(路由器的賬號是手機號嗎)

    11. 驍龍845和865相差多少(驍龍845和驍龍865哪個好)

      驍龍845和865相差多少(驍龍845和驍龍865哪個好)

    12. 手機關(guān)機打電話開機后會顯示嗎(手機關(guān)機打電話會有記錄嗎)

      手機關(guān)機打電話開機后會顯示嗎(手機關(guān)機打電話會有記錄嗎)

    13. 目錄文件所存放的信息是(目錄文件所存放的信息時)

      目錄文件所存放的信息是(目錄文件所存放的信息時)

    14. vivonex3和3s有什么區(qū)別(vivonex3和nex3s市場價多少)

      vivonex3和3s有什么區(qū)別(vivonex3和nex3s市場價多少)

    15. 什么叫抖音流量(什么叫抖音流量?)

      什么叫抖音流量(什么叫抖音流量?)

    16. 青綠色共享單車叫什么(青色的共享單車是什么牌子)

      青綠色共享單車叫什么(青色的共享單車是什么牌子)

    17. 抖音上直播音浪顯示的是一天的還是總的?(抖音直播音浪有什么用)

      抖音上直播音浪顯示的是一天的還是總的?(抖音直播音浪有什么用)

    18. 原彩是什么意思(蘋果手機原彩是什么意思)

      原彩是什么意思(蘋果手機原彩是什么意思)

    19. 全開麥和半開麥?zhǔn)鞘裁匆馑?怎么區(qū)分全開麥和半開麥)

      全開麥和半開麥?zhǔn)鞘裁匆馑?怎么區(qū)分全開麥和半開麥)

    20. 蘋果13.2.3更新了什么(ios13.2更新)

      蘋果13.2.3更新了什么(ios13.2更新)

    21. 抖音怎么看私信我消息(抖音怎么看私信對方是否看過)

      抖音怎么看私信我消息(抖音怎么看私信對方是否看過)

    22. 微信新消息提示音怎么更改(微信新消息提示音怎么添加新的)

      微信新消息提示音怎么更改(微信新消息提示音怎么添加新的)

    23. 應(yīng)用不小心刪除怎么恢復(fù)(不小心刪除了應(yīng)用軟件怎么辦)

      應(yīng)用不小心刪除怎么恢復(fù)(不小心刪除了應(yīng)用軟件怎么辦)

    24. iphone xmax雙卡雙待怎么用(iphone xmax雙卡雙待嗎)

      iphone xmax雙卡雙待怎么用(iphone xmax雙卡雙待嗎)

    25. 小米9看視頻不能全屏(小米看視頻不能橫過來全屏)

      小米9看視頻不能全屏(小米看視頻不能橫過來全屏)

    26. 不想接的電話怎樣設(shè)置(不想接的電話怎么設(shè)置成空號)

      不想接的電話怎樣設(shè)置(不想接的電話怎么設(shè)置成空號)

    27. 平板電腦的Windows系統(tǒng)與Android的區(qū)別是什么?(平板電腦的windows更新有必要嗎)

      平板電腦的Windows系統(tǒng)與Android的區(qū)別是什么?(平板電腦的windows更新有必要嗎)

    28. 電腦bios找不到硬盤選項的原因分析及解決方法(電腦bios找不到vt)

      電腦bios找不到硬盤選項的原因分析及解決方法(電腦bios找不到vt)

    29. 一般納稅人轉(zhuǎn)為小規(guī)模納稅人
    30. 稅務(wù)師考試稅法一章節(jié)
    31. 單位當(dāng)月未扣社保怎么處理分錄?
    32. 餐飲業(yè)成本的正確表述是
    33. 第二季度是多少錢
    34. 銷售補差怎么做分析
    35. 加油站企業(yè)規(guī)模大小怎么劃分
    36. 公司注銷時長期投資怎么處理
    37. 以前年度損益調(diào)整科目怎么用
    38. 辦公用品報銷項目怎么寫
    39. 抵債的貨物按什么算增值稅
    40. 其他應(yīng)收款屬于流動資產(chǎn)嗎
    41. 增值稅發(fā)票提示文件不匹配
    42. 不動產(chǎn)評估增值稅處理
    43. 處置固定資產(chǎn)按殘值還是凈值
    44. 銀行手續(xù)費回單可以作為報銷
    45. 1697509666
    46. 財務(wù)會計制度備案操作流程
    47. 財務(wù)報表包括哪幾個表
    48. 清算資金往來借貸方什么意思
    49. 企業(yè)收入確認(rèn)的依據(jù)是什么
    50. 蘋果電腦如何查看內(nèi)存大小
    51. php smarty
    52. 獲取當(dāng)前位置被拒怎么辦
    53. 企業(yè)間實物交易是指
    54. 交易性金融資產(chǎn)的入賬價值
    55. ghoststartservice.exe是什么進程 有什么作用 ghoststartservice進程查詢
    56. 計劃成本核算的賬務(wù)處理
    57. 命令行基礎(chǔ)
    58. 車輛保險費用的申請模板
    59. php鏈?zhǔn)讲僮?/a>
    60. sortable js
    61. unplugin-auto-import/vite
    62. powercfg off
    63. 使用Go http重試請求
    64. python編程bim
    65. 沒有交過稅怎么辦
    66. 手工明細(xì)賬簿怎么登賬
    67. 代收收款收據(jù)證明范本
    68. 未繳增值稅的貸方
    69. 數(shù)據(jù)庫SQL中DML
    70. mysql 5.7.1
    71. 增量留抵稅額怎么算
    72. 下列項目的進項稅額可以從銷項稅額中抵扣的是()
    73. 購銷合同沒注明合同有效期
    74. win10!
    75. 生育津貼和產(chǎn)假工資就高原則
    76. 不驗資實收資本怎么做賬
    77. 投資性房地產(chǎn)租金稅率是多少
    78. 企業(yè)職工福利費使用范圍和標(biāo)準(zhǔn)
    79. 買藥費用應(yīng)計入什么科目
    80. 如果找國外客戶
    81. 滴滴普票可以計算抵扣嗎
    82. 銀行結(jié)算卡年費多少
    83. 會計上有哪些
    84. 其他應(yīng)付款時間長了怎么處理?
    85. 會計政策變更的追溯調(diào)整法和未來適用法
    86. 設(shè)計會計憑證
    87. 算賬的意思是什么?
    88. java數(shù)據(jù)類型舉例
    89. win8系統(tǒng)的運行在哪里打開
    90. win8電腦恢復(fù)系統(tǒng)怎么操作
    91. XP系統(tǒng)如何設(shè)置U盤啟動
    92. Centos 5.5 php5.1.2升級到php5.2.6的方法
    93. linux和windows關(guān)系
    94. 如何關(guān)閉win8.1自動更新
    95. cocos2djs
    96. jQuery實現(xiàn)checkbox的簡單操作
    97. Android計算器項目代碼
    98. c opengl
    99. linux實現(xiàn)shell
    100. jquery選擇指定標(biāo)簽
    101. python中pandas.DataFrame排除特定行方法示例
    102. bootstrap要學(xué)到什么程度
    103. 怎樣學(xué)好js中的邏輯
    104. 稅務(wù)非正常戶解除申請怎么寫
    105. 成都高新區(qū)辦理社保在哪里?
    106. 貴州地稅網(wǎng)上申報大廳
    107. 廣西國稅發(fā)票查詢系統(tǒng)
    108. 寧波市國家稅務(wù)局網(wǎng)上辦稅服務(wù)廳
    109. 免責(zé)聲明:網(wǎng)站部分圖片文字素材來源于網(wǎng)絡(luò),如有侵權(quán),請及時告知,我們會第一時間刪除,謝謝! 郵箱:opceo@qq.com

      鄂ICP備2023003026號

      網(wǎng)站地圖: 企業(yè)信息 工商信息 財稅知識 網(wǎng)絡(luò)常識 編程技術(shù)

      友情鏈接: 武漢網(wǎng)站建設(shè)