Stackoverflow - Javascript scrollIntoView() middle alignment?

http://stackoverflow.com/q/8922107/918414

HTML

<nav id="toc" epub:type="toc">
        <h1>Contents</h1>
        <ol>
            <li id="navpoint1"><a href="text/04_toc.xhtml">目次</a></li>
            <li id="navpoint2"><a href="text/05_chapter01_title.xhtml">第1章 生き残った男の子</a></li>
            <li id="navpoint3"><a href="text/07_chapter02_title.xhtml">第2章 消えたガラス</a></li>
            <li id="navpoint4"><a href="text/09_chapter03_title.xhtml">第3章 知らない人からの手紙</a></li>
            <li id="navpoint5"><a href="text/11_chapter04_title.xhtml">第4章 鍵の番人</a></li>
            <li id="navpoint6"><a href="text/13_chapter05_title.xhtml">第5章 ダイアゴン横丁</a></li>
            <li id="navpoint7"><a href="text/15_chapter06_title.xhtml">第6章 9と3/4番線からの旅</a></li>
            <li id="navpoint8"><a href="text/17_chapter07_title.xhtml">第7章 組分け帽子</a></li>
            <li id="navpoint9"><a href="text/19_chapter08_title.xhtml">第8章 魔法薬の先生</a></li>
            <li id="navpoint10"><a href="text/21_chapter09_title.xhtml">第9章 真夜中の決闘</a></li>
            <li id="navpoint11"><a href="text/23_chapter10_title.xhtml">第10章 ハロウィーン</a></li>
            <li id="navpoint12"><a href="text/25_chapter11_title.xhtml">第11章 クィディッチ</a></li>
            <li id="navpoint13"><a href="text/27_chapter12_title.xhtml">第12章 みぞの鏡</a></li>
            <li id="navpoint14"><a href="text/29_chapter13_title.xhtml">第13章 ニコラス・フラメル</a></li>
            <li id="navpoint15"><a href="text/31_chapter14_title.xhtml">第14章 ノルウェー・ドラゴンのノーバート</a></li>
            <li id="navpoint16"><a href="text/33_chapter15_title.xhtml">第15章 禁じられた森</a></li>
            <li id="navpoint17"><a href="text/35_chapter16_title.xhtml">第16章 仕掛けられた罠</a></li>
            <li id="navpoint18"><a href="text/37_chapter17_title.xhtml">第17章 二つの顔をもつ男</a></li>
        </ol>
    </nav>

JavaScript

const element = document.getElementById('navpoint14');
const elementRect = element.getBoundingClientRect();
const absoluteElementTop = elementRect.top + window.pageYOffset;
const middle = absoluteElementTop - (window.innerHeight / 2);
window.scrollTo(0, middle);