0

私が困惑している大きな問題を説明しようと思います。

基本的に、絶対配置(ページの上部に近い場合)と固定配置(ページを下にスクロールする場合、ウィンドウの上部)の間を移動する #menu があります。これを実現するためにjqueryを使用しています。

修正されたら、「.fixed」クラスを指定します。これにより、「top:0px;position:relative;」になります。#menu にはトランジションがありますが、 #menu.fixed はトランジションを削除します。これは、下にスクロールしてからウィンドウの上部にアタッチするときに、最初はうまく機能します。新しいクラスではトランジションが削除されているため、位置の切り替えは問題ありません。

ただし、上にスクロールして「.fixed」クラスを削除すると、(現在) 絶対に配置されている #menu が 0px から 615px にアニメーション化されます。つまり、ページの上部にジャンプしてから下にスクロールします。これは、もう修正されていないためです。

これはコードです:

$('#menu').css({ top: '615px'}); // top was 0px before this. It is still fixed, so it should NOT animated.
$('#menu').removeClass('fixed'); // Now the transition kicks in
//As it's at 615px, it should stay where it is, not start animating to 615px from 0px as it does.

「.fixed」クラスが削除されるまでに要素が実際に再配置されていないため、新しい配置でアニメーション化されているためだと思います...間隔などを実行して、クラスをトリガーすることができます削除されましたが、ばかげているようです。

また、絶対に常に配置することができることも認識しています。そして、スクロールするときに一番上の値を再配置するだけです。しかし、それは冗長なようです...

私の問題を解決する方法を知っている人はいますか?

4

0 に答える 0