0

スクリプトを使用して、ユーザーが表示モード (グリッド、リスト、およびフル) を切り替えることができるようにしています。ユーザーがビューモードを変更すると、アクティブなビューがフェードアウトし、選択したビューがフェードインします。その移行中は空きスペースがあり、サイトが応答するため、コンテンツに固定の最大高さを設定したくありません。

以下からわかるように、ビューモードを切り替えるとフッターがジャンプします。

http://fiddle.jshell.net/9ae3T/12/

ビューモードが設定されるたびに、コンテンツの新しい最大高さを設定する方法はありますか? (それにより、一時的なネガティブ スペースを回避し、アクティブ コンテンツの高さに合わせますか?)

HTML:

 <ul class="tabs js-view-mode">
      <li><a href="#list">List</a></li>
      <li><a href="#grid">Grid</a></li>
      <li><a href="#full">Full</a></li>
    </ul>

    <section id="viewMode" class="content">
      <div id="list">here is list mode content</div>
      <div id="grid">here is grid mode content</div>
      <div id="full">here is full mode content</div>
    </section>

<footer></footer>

Jクエリ:

$(document).ready(function(){
  var wrap = $('#viewMode'),
      viewMode = $.cookie( 'view-mode' );
  wrap.children().hide();

  $('.js-view-mode').on( 'click', 'a',function( e ){
    e.preventDefault();
    var t = $(this),
        type = t.attr('href');

   wrap.children().fadeOut(); $(type).delay(500).fadeIn();

    viewMode = $.cookie( 'view-mode', type );

  });

  if ( viewMode ) {
    $('.js-view-mode a[href='+ viewMode +']').trigger('click');
  } else {
    $('.js-view-mode li:first a').trigger( 'click' );
  }

});

CSS (デモンストレーション用):

footer {background: red; display: block; width: 100%; height: 5px}

#list {height: 20px; width: 100%;display: block}
#grid {height: 55px; width: 100%;display: block}
#full {height: 100px; width: 100%;display: block}

/*.content {THIS NEEDS TO BE SET TO THE ACTIVE VIEWMODE CONTENT HEIGHT} */
4

1 に答える 1