私は、インラインJavascriptでロードされた既存のメニューシステムを、jQueryのみを使用してより効率的な新しいコードに変換しようとしています。マウスオーバーでスライディングメニューを開いたままにする
私はロールオーバーイメージを持つ横のバーを持っています。私はページに整数値を含む隠しフィールドを持っています。ページが読み込まれると、対応するメニューに画像の「スティッキー」バージョンがロードされ、他のすべてのメニュー項目はマウスで画像をスワップします&を入力します。それには、新しいサイトを作成するたびに変換するのが面倒だった、インラインJavascriptとモンスターJavascriptファイルのトンが読み込まれました。
これをすべてjQueryに変換しました。スティッキメニュー項目のクリックを無効にすることもできました。今ではいくつかの変数を設定し、各サイトのデザインごとに簡単にカスタマイズすることができます。
作業中...
今すぐ新しい問題が発生します。 1つのデザインには、各メニューイメージの下に一連の引き出しがあります。スライディングアニメーションは外部JSファイルによって処理され、メニュードロワ自体はコンテナーDIV内にネストされたコンテンツを含むDIVです。
それで、私はjQueryのために、DIVをアニメーション化し、メニュー画像のマウスのホバーに出し入れする簡単なものを書きました。
問題は、マウスがメニューイメージからドロワーが閉じずにメニュードロワーに移動する問題を解決できないように見えることです。私は "なぜ?"を理解しています...私は内部に入る前に引き出しを閉じるアニメーションを引き起こすイメージを残しています。ホバーアニメーションを引き出しコンテナに適用すると、アニメーションをトリガーするメニューの下にゾーンが作成されるだけで、私はそれも望んでいません。これはjQueryのより複雑な問題になっているようです。これはインラインのJavascriptでうまくいきました...あなたは、マウスを画像から隣接する開いている引き出しに移動するだけで、閉じる関数をトリガーせずに...引き出しのインライン「マウス入力」が取り消されたかのようにイメージの「マウス離脱」。
提案がありますか?
ありがとうございました!
EDIT:
は私が.stop使用してこれを解決信じる(真、偽)画像から引き出しに通過するとき。これにより、アニメーションが停止する前に停止します。通常のアニメーションを開始する前に画像を入力するときと同じです。これは、引き出しを残して画像を入力することによってトリガーされるアニメーションを停止する効果を持ちますが、画像を通常通り入力するだけでは何もしません。より多くのテストを行い、サンプルコードをいくつか投稿します。
EDIT#2:
私はそれが「停止()」と「遅延()」での作業アニメーションを制御する必要があるが、それはあなたが得ることができれば、引き出しの開口部を凍結することが可能ですあなたそれを開くために必要な時間よりも速くマウスを押し込んでください。 150ミリ秒でインストールされます。今は問題を誇張するために300ミリ秒に設定されています。
ここに掲載されている関連コード...
jsfiddle。ネット/ qPLVp/8/
EDIT#3:ニールへ
おかげで、これは今、非常にうまく機能しています。より速いアニメーション速度では、マウスのメニュー画像のオーバーシュートと引き出しの状態が最小限に抑えられます。しかし、それが起こった場合、引き出しはあなたのマウスの下から閉じるよりはるかに良いクローズされません。
http://jsfiddle.net/elusien/PayFw/8/
EDIT#4:再び
ニールのおかげで、これは同じコードのより効率的なバージョンです...
私たちの助けになるようにjQueryコードとHTMLの関連ビットを表示してください。私は助けることができると思うが、コードを見る必要がある。 – Neil