Как-то так, если правильно понял:
function isPartiallyOutOfViewport(el) {
const r = el.getBoundingClientRect();
return (
r.top < 0 ||
r.left < 0 ||
r.bottom > window.innerHeight ||
r.right > window.innerWidth
);
}
if (isPartiallyOutOfViewport(oNew)) {
oNew.scrollIntoView();
}
Если нужна не проверка по действую, а постоянное отслеживание, то можно IntersectionObserver использовать.