📱 高度计算

This commit is contained in:
Vanessa 2023-12-28 21:34:44 +08:00
parent 8979a8f840
commit 5a68a8c65f
2 changed files with 6 additions and 5 deletions

View File

@ -145,7 +145,7 @@ window.reconnectWebSocket = () => {
};
window.goBack = goBack;
window.showKeyboardToolbar = (height) => {
document.getElementById("keyboardToolbar").setAttribute("data-keyboardheight", (height ? height : window.innerHeight / 2 - 42).toString());
document.getElementById("keyboardToolbar").setAttribute("data-keyboardheight", (height ? height : window.outerHeight / 2 - 42).toString());
showKeyboardToolbar();
};
window.hideKeyboardToolbar = hideKeyboardToolbar;

View File

@ -273,7 +273,7 @@ export const showKeyboardToolbarUtil = (oldScrollTop: number) => {
const toolbarElement = document.getElementById("keyboardToolbar");
let keyboardHeight = toolbarElement.getAttribute("data-keyboardheight");
keyboardHeight = (keyboardHeight ? (parseInt(keyboardHeight) + 42) : window.innerHeight / 2) + "px";
keyboardHeight = (keyboardHeight ? (parseInt(keyboardHeight) + 42) : window.outerHeight / 2) + "px";
const editor = getCurrentEditor();
if (editor) {
editor.protyle.element.parentElement.style.paddingBottom = keyboardHeight;
@ -415,12 +415,13 @@ export const showKeyboardToolbar = () => {
setTimeout(() => {
const contentElement = hasClosestByClassName(range.startContainer, "protyle-content", true);
if (contentElement) {
const cursorTop = getSelectionPosition(contentElement).top - contentElement.getBoundingClientRect().top;
if (cursorTop < window.innerHeight - 118.5) { // 118: contentElement.getBoundingClientRect().top + toolbarElement.clientHeight
const contentTop = contentElement.getBoundingClientRect().top;
const cursorTop = getSelectionPosition(contentElement).top;
if (cursorTop < window.innerHeight - 42 && cursorTop > contentTop) {
return;
}
contentElement.scroll({
top: contentElement.scrollTop + cursorTop - ((window.outerHeight - 118.5) / 2 - 26),
top: contentElement.scrollTop + cursorTop - window.innerHeight + 42 + 26,
left: contentElement.scrollLeft,
behavior: "smooth"
});