fix: 协同下懒加载报错问题
This commit is contained in:
parent
bf181d4772
commit
8bbb9d0dc4
|
@ -539,11 +539,7 @@ class Producer extends EventEmitter2 {
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
// 没有这个卡片节点,或者卡片内部已经渲染了才需要过滤
|
// 没有这个卡片节点,或者卡片内部已经渲染了才需要过滤
|
||||||
if (
|
if (result && !result.rendered) {
|
||||||
result &&
|
|
||||||
!result.rendered &&
|
|
||||||
cardElement.attributes(CARD_LOADING_KEY) !== 'remote'
|
|
||||||
) {
|
|
||||||
isTransient = false;
|
isTransient = false;
|
||||||
record['nl'] = true;
|
record['nl'] = true;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -71,17 +71,27 @@ class RangeColoring implements RangeColoringInterface {
|
||||||
range: RangeInterface,
|
range: RangeInterface,
|
||||||
style: DrawStyle,
|
style: DrawStyle,
|
||||||
) {
|
) {
|
||||||
let startOffset = range.startOffset;
|
const { startOffset, startNode, endNode } = range;
|
||||||
while (startOffset < range.endOffset) {
|
let start = range.startOffset;
|
||||||
range.setStart(range.commonAncestorContainer, startOffset);
|
const endOffset = range.endOffset;
|
||||||
range.setEnd(range.commonAncestorContainer, startOffset + 1);
|
let startTop = range.getClientRect().top;
|
||||||
const rect = this.getRectWithRange(node, range);
|
let drawOffset = startOffset;
|
||||||
canvas.clearRect(rect);
|
while (start < endOffset) {
|
||||||
canvas.drawRect({ ...rect.toJSON(), ...style });
|
range.setStart(range.commonAncestorContainer, start);
|
||||||
startOffset++;
|
range.setEnd(range.commonAncestorContainer, start + 1);
|
||||||
|
const curRect = range.getClientRect();
|
||||||
|
if (curRect.top > startTop || start === endOffset - 1) {
|
||||||
|
range.setStart(range.commonAncestorContainer, drawOffset);
|
||||||
|
drawOffset = start;
|
||||||
|
startTop = curRect.top;
|
||||||
|
const rect = this.getRectWithRange(node, range);
|
||||||
|
canvas.clearRect(rect);
|
||||||
|
canvas.drawRect({ ...rect.toJSON(), ...style });
|
||||||
|
}
|
||||||
|
start++;
|
||||||
}
|
}
|
||||||
range.setStart(range.startContainer, range.startOffset);
|
range.setStart(startNode, startOffset);
|
||||||
range.setEnd(range.endContainer, range.endOffset);
|
range.setEnd(endNode, endOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
drawBackground(
|
drawBackground(
|
||||||
|
|
Loading…
Reference in New Issue