feat: limit the max cursor offsetHeight #348
Co-authored-by: xukuanzhuo <xukuanzhuo@jd.com> Co-authored-by: Hufe921 <huangyunfeihufe@hotmail.com>
This commit is contained in:
co-authored by
xukuanzhuo
Hufe921
parent
6ca1919498
commit
2666bc43c3
@@ -1,4 +1,4 @@
|
|||||||
import { CURSOR_AGENT_HEIGHT } from '../../dataset/constant/Cursor'
|
import { CURSOR_AGENT_OFFSET_HEIGHT } from '../../dataset/constant/Cursor'
|
||||||
import { EDITOR_PREFIX } from '../../dataset/constant/Editor'
|
import { EDITOR_PREFIX } from '../../dataset/constant/Editor'
|
||||||
import { MoveDirection } from '../../dataset/enum/Observer'
|
import { MoveDirection } from '../../dataset/enum/Observer'
|
||||||
import { DeepRequired } from '../../interface/Common'
|
import { DeepRequired } from '../../interface/Common'
|
||||||
@@ -121,9 +121,11 @@ export class Cursor {
|
|||||||
? pageNo
|
? pageNo
|
||||||
: this.draw.getPageNo()
|
: this.draw.getPageNo()
|
||||||
const preY = curPageNo * (height + pageGap)
|
const preY = curPageNo * (height + pageGap)
|
||||||
// 增加1/4字体大小
|
// 默认偏移高度
|
||||||
const offsetHeight = metrics.height / 4
|
const defaultOffsetHeight = CURSOR_AGENT_OFFSET_HEIGHT * scale
|
||||||
const cursorHeight = metrics.height + offsetHeight * 2
|
// 增加1/4字体大小(最小为defaultOffsetHeight即默认偏移高度)
|
||||||
|
const increaseHeight = Math.min(metrics.height / 4, defaultOffsetHeight)
|
||||||
|
const cursorHeight = metrics.height + increaseHeight * 2
|
||||||
const agentCursorDom = this.cursorAgent.getAgentCursorDom()
|
const agentCursorDom = this.cursorAgent.getAgentCursorDom()
|
||||||
if (isFocus) {
|
if (isFocus) {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -135,16 +137,16 @@ export class Cursor {
|
|||||||
const descent =
|
const descent =
|
||||||
metrics.boundingBoxDescent < 0 ? 0 : metrics.boundingBoxDescent
|
metrics.boundingBoxDescent < 0 ? 0 : metrics.boundingBoxDescent
|
||||||
const cursorTop =
|
const cursorTop =
|
||||||
leftTop[1] + ascent + descent - (cursorHeight - offsetHeight) + preY
|
leftTop[1] + ascent + descent - (cursorHeight - increaseHeight) + preY
|
||||||
const cursorLeft = hitLineStartIndex ? leftTop[0] : rightTop[0]
|
const cursorLeft = hitLineStartIndex ? leftTop[0] : rightTop[0]
|
||||||
agentCursorDom.style.left = `${cursorLeft}px`
|
agentCursorDom.style.left = `${cursorLeft}px`
|
||||||
agentCursorDom.style.top = `${
|
agentCursorDom.style.top = `${
|
||||||
cursorTop + cursorHeight - CURSOR_AGENT_HEIGHT * scale
|
cursorTop + cursorHeight - defaultOffsetHeight
|
||||||
}px`
|
}px`
|
||||||
// 模拟光标显示
|
// 模拟光标显示
|
||||||
if (!isShow) return
|
if (!isShow) return
|
||||||
const isReadonly = this.draw.isReadonly()
|
const isReadonly = this.draw.isReadonly()
|
||||||
this.cursorDom.style.width = `${width}px`
|
this.cursorDom.style.width = `${width * scale}px`
|
||||||
this.cursorDom.style.backgroundColor = color
|
this.cursorDom.style.backgroundColor = color
|
||||||
this.cursorDom.style.left = `${cursorLeft}px`
|
this.cursorDom.style.left = `${cursorLeft}px`
|
||||||
this.cursorDom.style.top = `${cursorTop}px`
|
this.cursorDom.style.top = `${cursorTop}px`
|
||||||
|
|||||||
@@ -1194,7 +1194,7 @@ export class Draw {
|
|||||||
metrics.width = elementWidth
|
metrics.width = elementWidth
|
||||||
metrics.height = elementHeight
|
metrics.height = elementHeight
|
||||||
metrics.boundingBoxDescent = elementHeight
|
metrics.boundingBoxDescent = elementHeight
|
||||||
metrics.boundingBoxAscent = 0
|
metrics.boundingBoxAscent = -rowMargin
|
||||||
// 表格分页处理(拆分表格)
|
// 表格分页处理(拆分表格)
|
||||||
const height = this.getHeight()
|
const height = this.getHeight()
|
||||||
const marginHeight = this.getMainOuterHeight()
|
const marginHeight = this.getMainOuterHeight()
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { ICursorOption } from '../../interface/Cursor'
|
import { ICursorOption } from '../../interface/Cursor'
|
||||||
|
|
||||||
export const CURSOR_AGENT_HEIGHT = 12
|
export const CURSOR_AGENT_OFFSET_HEIGHT = 12
|
||||||
|
|
||||||
export const defaultCursorOption: Readonly<Required<ICursorOption>> = {
|
export const defaultCursorOption: Readonly<Required<ICursorOption>> = {
|
||||||
width: 1,
|
width: 1,
|
||||||
|
|||||||
Reference in New Issue
Block a user