95960


他に同様のサイトがあるかはわかりませんが、[Bluesky](https://bsky.app/)ではブラウザのスクロールバーと別にページ内部にもスクロールバーが表示されます。そして`window.scrollTo()`ではブラウザのスクロールバーを動かすことはできても、内部のスクロールバーは動かせないので実質的に働きません。

`body`タグに`overflow-y: auto`が指定されてる事が原因かとも思いましたが、以下のようにしてもダメでした。

[code]

    window.onload = function () {
            document.body.style.overflowY = "visible";
    }
    
[/code]

また、以下のコードを試したところ、`Uncaught TypeError: Cannot set properties of undefined
(setting 'overflowY')`とエラーが出ます。

[code]

    const divs = document.getElementsByTagName("div");
    for(const div in divs){
        div.style.overflowY = "visible";
    }
    
[/code]

スクロールバーが二重に表示される原因は別にあるかもしれませんが、いずれにせよ内部のスクロールバーを動かす方法は無いでしょうか？

なお、javascriptを動かしてるのは[Tampermonkey](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)内のユーザースクリプトです。


CC BY-SA 4.0
2023-08-17T00:31:54.743
95959
2023-08-17T01:49:28.727
816
question
javascript
スクロールバーが二重に表示されるページ(Bluesky, bsky.app)で`window.scrollTo()`が働かない


(私の環境では bsky.app にはスクロールバーは現れないので動作確認はできませんが)  
一般的には、スクロール可能な要素(`overflow`の値が `auto` や `scroll`になっている)の `scrollTo()`
などを呼べばよいです。`window.scrollTo()` ではなく。

もし `<body>` が対象要素であるなら、`document.body.scrollTo(...)` です。


CC BY-SA 4.0
2023-08-17T01:49:28.727
95960
2023-08-17T01:49:28.727
3475
95959
answer