コンテンツ iframe が読み込まれると、jQuery アコーディオンが左に跳ね返ります。私は困惑しています。
助言がありますか?
私はそれがiframeのサイズ変更コードにあると推測しています。
$(function() {
$( "#accordion" ).accordion({
collapsible: true,
active: false
});
});
コンテンツ iframe が読み込まれると、jQuery アコーディオンが左に跳ね返ります。私は困惑しています。
助言がありますか?
私はそれがiframeのサイズ変更コードにあると推測しています。
$(function() {
$( "#accordion" ).accordion({
collapsible: true,
active: false
});
});
それほどクールではありませんが、次のような回避策を簡単に試すことができます。
$(function(){ $('.ui-accordion-header').on('click',function(){
if($(this).hasClass('ui-state-active')){
$('body').css('overflow','hidden');
}else{
setTimeout(function(){
$('body').css('overflow','auto');
},600);
}
});
});
バウンスは、スクロール バーが表示されたときのブラウザの通常の動作です。IE 7 (私が思うに) などの古いブラウザーでは、スクロールバーは常に表示されていましたが、必要のないときは無効になっていました。したがって、バウンスは発生しません。
それを実現し、overflow
プロパティを使用して、必要がない場合でもスクロールバーを常に表示することができます。
古いブラウザーと同じように、スクロールバーが必要ない場合は無効にし、必要な場合は有効にします。したがって、バウンスはありません。
次の CSS はそれを行います。
body {
overflow-y: scroll;
}
デモ 1 - 常にスクロール バーを表示する
もう 1 つの方法は、ドキュメントの高さを 100% よりも少し高くすることです。したがって、スクロール バーも常に表示されますが、常に有効になっています。
そのために次の CSS を追加できます。
html {
height: 101%;
}
デモ 2 - 大きな HTML ドキュメントの使用
DEMO 1は、より標準的なアプローチのようです。これは、以前のブラウザのように見え、無効にするとグレー表示されたスクロール バーがあまり見えないためです。
DEMO 2は、上記のオプションとは異なり、無効にされないスクロールバーは、コンテンツがスクロール可能なコンテンツでなくても、常にスクロール可能なコンテンツを示しているように見えるため、あまり好ましくない可能性があります。
JavaScript ソリューションを使用すると、コースから外れて機能する可能性がありますが、はるかに重く、保守/更新が面倒になる可能性があります。