1. ホーム
  2. javascript

[解決済み] Javascript scrollIntoView()ミドルアライメント?

2022-11-21 16:10:27

質問

ジャバスクリプト .scrollIntoView(boolean) は、2つのアライメントオプションのみを提供します。

  1. トップ
  2. ボトム

このように表示をスクロールさせたい場合はどうすればよいのでしょうか。特定の要素をページの真ん中のどこかに持ってきたいのですが?

どのように解決するのですか?

使用方法 window.scrollTo() を使います。移動したい要素の上部を取得し、ウィンドウの高さの半分を差し引きます。

デモです。 http://jsfiddle.net/ThinkingStiff/MJ69d/

Element.prototype.documentOffsetTop = function () {
    return this.offsetTop + ( this.offsetParent ? this.offsetParent.documentOffsetTop() : 0 );
};

var top = document.getElementById( 'middle' ).documentOffsetTop() - ( window.innerHeight / 2 );
window.scrollTo( 0, top );