X-Git-Url: https://git.jacobcasper.com/?p=hnim.git;a=blobdiff_plain;f=hnim.js;h=7ac3f5d9ee704cdbee50f6829def5178fb51eb23;hp=890852d9bf9b984b0ee82c4a7a1f983bf0bf36fc;hb=e10798def56ccc77315816ca54e32e623cf49dd5;hpb=93b766f9a4c9db36f1c899cc02c4caa24af995dc diff --git a/hnim.js b/hnim.js index 890852d..7ac3f5d 100644 --- a/hnim.js +++ b/hnim.js @@ -15,7 +15,7 @@ const visible = (element) => { let bounds = element.getBoundingClientRect(); - return bounds.top >= 0 && bounds.bottom <= window.innerHeight; + return Math.abs(bounds.bottom - bounds.top) > window.innerHeight || (bounds.top >= 0 && bounds.bottom <= window.innerHeight); } const changeWithVisibleCallback = (comment, callback) => { @@ -37,7 +37,7 @@ // Curry callback for moving downpage const changeDownpage = () => { - elementsIndex = Math.min(elementsIndex + 1, elements.length); + elementsIndex = Math.min(elementsIndex + 1, elements.length - 1); changeWithVisibleCallback(elements[elementsIndex], () => {window.scrollTo(0, window.scrollY + selectedElement.offsetHeight)}); } @@ -51,7 +51,7 @@ change(e.target.closest("tr.athing")); }) document.addEventListener("keydown", (e) => { - if (e.isComposing) { + if (e.target.type === 'textarea' || e.isComposing) { return; } switch (e.key) {