2017-01-30 10 views
0
<article> 
    <aside> 
    ... 
    <div id="onlineformular"> 
     ... 
    </div> 
    </aside> 
</article> 

article 
{ 
    overflow:auto; 
    max-height:77vh; 
    width:100%; 
    background-color:white; 
} 

$('article').animate({scrollTop:$('#onlineformular').position().top}, 'slow'); 

私はdiv#onlineformularまでスクロールしたいだけですが、スクロールアップします。どうして? (スニペットのみ表示)jqueryが下にスクロールする代わりに

ありがとうございます。

+1

この問題を示す完全な実例を提供できますか? – Ionut

+0

多くの異なるファイルのテキストが多すぎます。私はスクロールしていないことについてたくさん読んでおり、すべてのケースで単純に機能させるソリューションがあるのだろうかと思います。私はこの場合にまだ解決策を見つけていない。もちろん私は質問に答えます。 – user3756502

+0

scrollTop値だけが間違っているようです。どのようにして正しい値を得ることができますか? – user3756502

答えて

0

あなたから提供されたコードによれば、pageはpage topからdiv#onlineformularの位置に従ってスクロールします。

animateは、現在のスクロール位置から新しいスクロール位置まで、div#onlineformularの位置で定義された上から上に移動します。

+0

ありがとうございますが、div#onlineformularの位置は間違っているようですので、div#onlineformularから上にスクロールします。多くのインターネットの質問によれば、このスクロールには一般的な問題があるようです。おそらく、ビューポートまたは外部のdivの一般的な問題? position()の代わりに正しい値を返すtopがありますか? – user3756502

+0

これをチェックしてください:https://jsfiddle.net/tv268vwq/ ボタンをクリックすると、ページが予想通りに上下にスクロールしています。 –

+0

position()。top記事タグの先頭から計算しています。それはドキュメント '$( 'document')でなければなりません。animate({scrollTop:$( '#オンライン形式)} position()。top}、' slow '); ' –

0

使用bodyセレクタの代わりに、article

$('body').animate({scrollTop:$('#onlineformular').position().top}, 'slow');
.some_div{ 
 
    height: 1000px; 
 
    background: #adadad; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class='some_div'></div> 
 
<article> 
 
    <aside> 
 
    ... 
 
    <div id="onlineformular"> 
 
     ... 
 
    </div> 
 
    
 
    </aside> 
 
</article>

+0

ありがとうございます。記事タグはスクロール可能ですが、本文は修正されています。しかし、私はそれを試してみる...残念ながら、それはまったくスクロールしません。 – user3756502

+0

@ user3756502、申し訳ありませんが、コード全体を見ることなく、問題の原因を特定することはできません。それは 'CSS'の問題でさえあります。 – Ionut

関連する問題