最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

劃詞標(biāo)注或打標(biāo)簽的實(shí)現(xiàn)方案

2023-06-09 20:14 作者:Cpp程序員  | 我要投稿

我們有很多業(yè)務(wù)場景需要對文字打標(biāo)簽,有的直接劃詞,有的需要打標(biāo)簽,比如下面的動圖展示。對實(shí)現(xiàn)思路做個總結(jié)

保存數(shù)據(jù)展示


start?起始位置(包含)
end?結(jié)束位置(不包含)
label?打的標(biāo)簽
text?劃選的為本

實(shí)現(xiàn)思路:基于vue的數(shù)據(jù)驅(qū)動操作,不需要關(guān)心dom,只需操作數(shù)據(jù)即可

1.將text文本拆分成,一個字一個span

2.給文字加mouseup事件,通過getSelection的方法,可以非常方便的獲取到對應(yīng)的anchorNode和focusNode,從而獲取到start和end

3.渲染下劃線:根據(jù)劃詞的數(shù)據(jù)labels,使用一個redWordMap,只要是有的(start-end的數(shù)據(jù)),都設(shè)為true,然后在模板中給存在redWordMap中的數(shù)據(jù)加red樣式

4.渲染標(biāo)注label:根據(jù)劃詞的數(shù)據(jù)labels,使用一個tipWordMap,給start的數(shù)據(jù)設(shè)置數(shù)據(jù),然后在模板中給存在tipWordMap中的數(shù)據(jù)加sub

把模板寫好,數(shù)據(jù)造好后,怎么玩都只要操作數(shù)據(jù)就行了,非常方便。比傳統(tǒng)的操作dom,好用的多。
不過這種實(shí)現(xiàn)方案只適合數(shù)據(jù)不是非常多,測試萬字是OK的,但是比如幾十萬字,可能會存在性能問題,結(jié)合業(yè)務(wù)場景,斟酌使用。


劃詞標(biāo)注或打標(biāo)簽的實(shí)現(xiàn)方案的評論 (共 條)

分享到微博請遵守國家法律
禄丰县| 绥中县| 墨玉县| 海南省| 论坛| 麻阳| 遂宁市| 陆河县| 绥宁县| 宁阳县| 宁海县| 扶余县| 彩票| 贵港市| 江陵县| 黄梅县| 罗源县| 阜阳市| 湖南省| 京山县| 凌海市| 武威市| 辉县市| 苏尼特左旗| 临桂县| 阿拉善盟| 加查县| 姜堰市| 广汉市| 探索| 曲阳县| 宜昌市| 通山县| 常宁市| 黎川县| 肃南| 迁西县| 遵化市| 庄浪县| 武汉市| 盐亭县|