const getDesc = () => {
let textNode = textRef.current;
let originalText = textNode.innerHTML; // 源数据存储变量
let changeText = textNode.innerHTML; // 计算数据变量
let textNodeRects = textNode.getClientRects();
let h = getLength(textNodeRects); // 行数
while (h > 2) {
let step = 1;
changeText = changeText?.slice(0, -step);
textNode.innerHTML = `${changeText}<span>...</span><span id="open" style="color: #4F5BFF" data-spread="false">展开</span>`;
h = getLength(textNode.getClientRects());
}
window.addEventListener('click', (e: any) => {
let openNode = document.getElementById('open');
let packNode = document.getElementById('pack');
if (openNode?.contains(e.target) || packNode?.contains(e.target)) {
let state = document.getElementById('open')?.dataset.spread;
if (state === 'false') {
textNode.innerHTML = `${originalText}<span id="pack" style="color: #4F5BFF; margin-left: 5px" data-spread="false">收起</span>`;
} else {
textNode.innerHTML = `${changeText}<span>...</span><span id="open" style="color: #4F5BFF" data-spread="false">展开</span>`;
}
}
e.stopPropagation();
e.preventDefault();
});
};
文本的展开与收起
最新推荐文章于 2024-08-12 17:51:29 发布