【Cocoon】ページトップボタンがフェードインして出現する条件

Cocoonのページトップボタンの上に別のボタンを追加したときに出現させるタイミングがわからず困ったので解決した記事をメモしておきます。

スポンサーリンク

親テーマのjavascript.jsを見て条件を見つける

結論ですがページトップボタンはウインドウの一番上から600pxスクロールした時点で出現します。

ちなみにページトップボタンの要素はdivでidが#go-to-topです。

親テーマのjavascript.jsを見てみると以下のようなコードがかかれています。

/////////////////////////////////
  //TOPへ戻るボタン
  /////////////////////////////////
  var prevScrollTop = -1;
  var $window = $(window);
  $window.scroll(function () {
    //最上部から現在位置までの距離を取得して、変数[scrollTop]に格納
    var scrollTop = $window.scrollTop();
    var threashold = 600;
    var s1 = (prevScrollTop > threashold);
    var s2 = (scrollTop > threashold);

    // スレッショルドを跨いだ時のみ処理をする
    if (s1 ^ s2) {
      if (s2) {
        //[.go-to-to]をゆっくりフェードインする
        $('.go-to-top').fadeIn('slow');
      } else {
        //それ以外だったらフェードアウトする
        $('.go-to-top').fadeOut('slow');
      }
    }

    prevScrollTop = scrollTop;
  });
スポンサーリンク

フェードインさせるタイミング

見ればわかりますがslowが設定されていますね。

$('.go-to-top').fadeIn('slow');

他のボタンを追加した場合これを元にコードを組めば同じスクロール位置で同じタイミングで出現させることができますね。

コメント

タイトルとURLをコピーしました