0

現在、ここに CSS アコーディオンを含むページがあります。ご覧のとおり、アコーディオンを閉じた状態ではなく開いた状態でページをロードするために、アコーディオン セクションの 1 つ #acc3 へのリンク ポイントを設定しました。

これに関する問題は、ページが自動的にアコーディオンを中央にスクロールすることです (小さなビューポートで)。ページをデフォルトで上にスクロールする必要があります。使ってみました

     $(document).ready(function(){
$('html').scrollTop(0);

});

しかし、それは役に立っていないようです。何か案が?- ありがとう

4

2 に答える 2

1

これを試して

<script type="text/javascript">
    $(document).ready(function () {
        window.scrollTo(0,0);
    });
</script>
于 2013-08-22T09:12:01.330 に答える
0

あなたが使用しているソリューションは、アンカー リンクだけに頼るのに適しているとは思いません。ある種のページネーションとして機能することは理解していますが、あなたが言ったように、ロード時に要素にジャンプしているという事実は少し厄介です。

また、アンカーが設定されていない場合、それらのどれも開いていないという事実も本当に好きではありません。最初のものがあなたの「デフォルト」だったら、私はそれをはるかに好むでしょう。ただし、明示的に言及しない限り、CSS を頭のてっぺんに使用してこれを達成する良い方法を考えることはできません#acc2:not(:target), #acc3:not(:target)(親セレクターを取得すれば、これは CSS4 でより簡単になるかもしれませんが、私はそうではありません)確かに)。

既存のソリューションで本当にこれを実現したい場合は、使用する$("html,body").scrollTop(0)必要がありますが、jQuery を使用してスクロール位置を即座に設定しようとすると問題が発生したことも覚えています。タイムアウトを追加してみて (1 ミリ秒のように非常に小さい場合もあります)、それが役立つかどうかを確認してください。

// Try de/increasing the 200 and see if that helps
setTimeout(function() {
    $("html, body").scrollTop(0)
}, 200);

#accただし、ハッシュ開始の初期チェックや、何もない場合は要素の 1 つ (デフォルト) に焦点を当てるなど、JavaScript ももう少し採用してほしいと思います。

于 2013-08-22T09:48:10.810 に答える