欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue使用advanced-mark.js實現(xiàn)高亮文字效果

 更新時間:2025年08月08日 10:10:27   作者:__愛吃香菜  
在日常項目中我們往往會有搜索高亮的需求,下面這篇文章主要介紹了vue使用advanced-mark.js實現(xiàn)高亮文字效果的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

組件介紹-advanced-mark.js:

advanced-mark.js 是一個用于 Vue 的高亮文字組件,它可以幫助你在文本中高亮顯示指定的關鍵詞或短語。
組件地址:https://angezid.github.io/advanced-mark.js/doc-v2/getting-started.html

  • 主要功能:
  • 關鍵詞高亮:在文本中高亮顯示一個或多個關鍵詞
  • 多關鍵詞支持:可以同時高亮多個不同的關鍵詞
  • 自定義樣式:允許自定義高亮部分的樣式
  • 大小寫敏感選項:可選擇是否區(qū)分大小寫
  • 正則表達式支持:支持使用正則表達式進行復雜匹配
  • 可以設置css名稱進行限制高亮區(qū)域

下載安裝:

npm install advanced-mark.js

yarn add advanced-mark.js

要初始化新實例,必須使用:

var instance = new Mark(context);
instance.mark('lorem');

使用方法介紹:

  • element 【string】:獲取document,通過document.getElementById()或document.querySelector()獲取的單個元素,或document.querySelectorAll()獲取節(jié)點列表,包含多個單個元素的數(shù)組(請注意,在內部,數(shù)組按元素在文檔中的位置排序)
    字符串選擇器(內部調用document.querySelectorAll())
    :const allNodes =document.querySelectorAll(selector));
  • className 【string】:標記元素的自定義類。
  • separateWordSearch【boolean or string】:當它設置為true時,如果搜索字符串包含多個單詞,它會將字符串按空格拆分為單獨的單詞,并突出顯示單個單詞而不是整個字符串。
    它也適用于搜索數(shù)組中的每個字符串。
    當它設置為“separateWordSearch ”時,它會保留雙引號周圍的術語,防止它們分成單獨的單詞。
    當設置為‘false’的時候,指定將術語不分解為單獨的單詞。
  • diacritics【boolean】:是否匹配變音字符。
  • caseSensitive【boolean】:是否搜索區(qū)別大小寫。
  • accuracy【string or object】:兩種模式值,
    -字符串模式:
    partially:部分匹配,例如搜索"a"時,會高亮所有包含該字母的單詞(如"and"、“back"中 的"a”)。
    exactly:強制精確匹配,默認通過空格或文本節(jié)點的起止位置作為邊界(需配合acrossElements選項使用)。
    startsWith:前綴匹配,例如搜索"pre"會完整高亮以該前綴開頭的單詞(如"prefix"、“predict”)。
    complementary:互補匹配,例如搜索"a"時,僅高亮完整包含該字符且未被邊界分隔的單詞(如"and"、“visa”)。
    -對象模式:
    通過 value 指定匹配模式(必須為上述四個字符串值之一)
    通過 limiters 自定義邊界字符,例如:
    { value: "exactly", limiters: ",.;:?!'\"()" }
    
  • wildcards【string】:匹配空格,enabled 模式忽略空格;withSpaces 模式允許空格作為有效字符;disabled 完全禁用通配符功能;
  • ignoreJoiners【boolean】:是否查找包含軟連字符、零寬度空格、零寬度非連接符和零寬度連接符的匹配項。
  • synonyms【object】:該對象用于建立詞匯間的雙向/單向關聯(lián)關系,支持兩種配置形式:
  • each:每個標記元素的回調。
    例:
    each: function (markElement, eachInfo) {
    // markElement:當前被高亮的 DOM 元素。
    // eachInfo:包含匹配信息的對象,其中 eachInfo.match[0] 是匹配到的關鍵詞
    const keyword = eachInfo.match[0];
    markElement.style.backgroundColor =
    keywordColors[keyword] || '#FBD1D5';
     }
    

注: 如果想要多個部分分散使用高亮功能,那么可以使用數(shù)組形式進行存儲,并遍歷循環(huán)。

const  classNames=['.css1','.css2','.css3',...]
   const allNodes = classNames.flatMap((selector) =>
      document.querySelectorAll(selector));
    allNodes.forEach((node) => {
      // 在指定的 DOM 元素中查找并高亮指定的關鍵詞
      const instance = new Mark(node); //new一個新對象
      instance.unmark(); // 清除之前的標記
        instance.mark(highlightKeywords[注:接受高亮詞的數(shù)組], {
          separateWordSearch: false, // false指定將術語不分解為單獨的單詞
          each: function (markElement, eachInfo) {
            // markElement:當前被高亮的 DOM 元素。
            // eachInfo:包含匹配信息的對象,其中 eachInfo.match[0] 是匹配到的關鍵詞
            const keyword = eachInfo.match[0];
            markElement.style.backgroundColor =
              keywordColors[keyword] || '#FBD1D5';// 設置顏色和默認顏色
          }
        });
    });

組件產出效果:

總結 

到此這篇關于vue使用advanced-mark.js實現(xiàn)高亮文字效果的文章就介紹到這了,更多相關vue高亮文字效果內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue2.0實現(xiàn)音樂/視頻播放進度條組件

    vue2.0實現(xiàn)音樂/視頻播放進度條組件

    這篇文章主要為大家詳細介紹了vue2.0實現(xiàn)音樂和視頻播放進度條組件的思路及具體實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • vue+echarts實現(xiàn)條紋柱狀橫向圖

    vue+echarts實現(xiàn)條紋柱狀橫向圖

    這篇文章主要為大家詳細介紹了vue+echarts實現(xiàn)條紋柱狀橫向圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue-cli3 karma單元測試的實現(xiàn)

    vue-cli3 karma單元測試的實現(xiàn)

    這篇文章主要介紹了vue-cli3 karma單元測試的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 詳解input組合事件如何監(jiān)聽輸入中文

    詳解input組合事件如何監(jiān)聽輸入中文

    這篇文章主要為大家介紹了input組合事件如何監(jiān)聽輸入中文示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • vue使用swiper.js重疊輪播組建樣式

    vue使用swiper.js重疊輪播組建樣式

    這篇文章主要為大家詳細介紹了vue使用swiper.js重疊輪播組建樣式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Vue中video標簽如何實現(xiàn)不靜音自動播放

    Vue中video標簽如何實現(xiàn)不靜音自動播放

    最近在做大屏展示需要在一開始播放引導視頻,產生自動播放需求,下面這篇文章主要給大家介紹了關于Vue中video標簽如何實現(xiàn)不靜音自動播放的相關資料,需要的朋友可以參考下
    2023-01-01
  • vue使用?vue-socket.io三種方式及踩坑實例解析

    vue使用?vue-socket.io三種方式及踩坑實例解析

    這篇文章主要為大家介紹了vue使用?vue-socket.io三種方式及踩坑實例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • vue實現(xiàn)登錄攔截

    vue實現(xiàn)登錄攔截

    這篇文章主要介紹了vue實現(xiàn)登錄攔截,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • JavaScript之Vue.js【入門基礎】

    JavaScript之Vue.js【入門基礎】

    本文主要介紹一下Vue.js并附上在Node.js環(huán)境下搭建一個簡單的Demo實例代碼。條理清晰,有助于閱讀和理解。有需要的朋友可以看下
    2016-12-12
  • Vue發(fā)布訂閱模式實現(xiàn)過程圖解

    Vue發(fā)布訂閱模式實現(xiàn)過程圖解

    這篇文章主要介紹了Vue發(fā)布訂閱模式實現(xiàn)過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04

最新評論