アニメーションを実行するだけの開閉機能に問題があります。
ここで私のフィドルを参照してくださいhttp://jsfiddle.net/motocomdigital/X34XJ/7/
スライダーアニメーション内でこの関数を実行しているため、再生されています。bx-slider の使用。
この問題は、2 回目のスライダーの回転まで発生しません。これは、バグを表示するためにフィドルで行う必要があることです。
- フィドルを開き、
- [パネルを開く] をクリックします。
- パネルを閉じ、
- 次のスライドに移動
- 上記と同じ手順を繰り返します (ただし、スライドの 1 つで、パネルを開いたままにして次の面に移動します)。
- スライド 1 に戻ると、パネルを開こうとすると、開いてすぐに閉じます。
- これらの手順をもう一度繰り返すと、パネルが開き始め、閉じてから再び開くことに気付くでしょう... ああ、変です!!!!
これは私のコードです(ただし、フィドルを表示する方が良いでしょう)
$('#slider1').bxSlider({
auto: false,
speed: 800,
// runs after new slide has loaded
onAfterSlide: function(currentSlideNumber, totalSlideQty, currentSlideHtmlObject) {
var $fadeItems = $('a.openPanel, .panel, span'), // items that fade in
$panel = $(currentSlideHtmlObject).find('.panel'); // current slide panel
$fadeItems.removeAttr('style'); // this removes the inline style on all fadeItems, allowing css display: none; to take affect
$(currentSlideHtmlObject).find($fadeItems).fadeIn(); // current slide fadeIn items fade in
panelOpen = false; // panel state closed
panelAction = function() { // panel slide function
if (panelOpen === true) {
panelOpen = false;
$panel.animate({
left: '-300px'
});
} else {
panelOpen = true;
$panel.animate({
left: '0px'
});
}
};
// panel slide open/close button
$(currentSlideHtmlObject).find('a.openPanel').on('click', function(e) {
e.preventDefault();
panelAction();
});
}
});
私が間違っているところを誰かが理解するのを手伝ってくれたら、とても感謝しています。
前もって感謝します。