ボディのサイズ変更をリッスンする信頼できる方法はありませんが、アコーディオンで発生するアニメーションをリッスンすることはできます。これを行うには2つの方法がありますが、そのうちの1つはよりクールです。
アコーディオンスクリプトのどこかにjQuery.animate
ステートメントがあります。.show(200)
またはのようなショートカットを使用していない場合は、それをステートメント.fadeIn
に変換する必要があります。.animate
これらのコマンドはすべて、.animate
とにかく実際には単なるショートカットです。slideUp
とを使用している場合slideDown
。後で使用するためにスライダーを初期化するときに、要素の高さを保存する必要があります(これは、jQueryが舞台裏で行っていることです)。
次に、.animateのstepプロパティを使用して、スクロールバーの存在をリッスンします。
$(accordionSlideToShow).animate({
height : 200
step : function(){
//scrollbar checking and css control script here
}
}, 2000);
しかし、もっとクールになりたい場合は、ウィジェットにカスタムイベントを追加できます。このようにして、将来の開発はこれらのイベントに無料の機能として結び付けることができます。
$(accordionSlideToShow).trigger('ron-accordion-slideWillShow').animate({
height : 200
step : function(){
$(accordionParentElement).trigger('ron-accordion-animationOccurring');
}
}, 2000, function(){
$(this).trigger('ron-accordion-slideDidShow');
});
これで、ウィジェットの新しいイベントモデルに結び付けて、次のようにアニメーションとスクロールバーを聞くことができます。
$(accordionInstance).on('ron-accordion-animationOccurring', function(){
//test for scroll bars and add css if needed
});