3

固定位置をサポートしていないモバイルブラウザのモバイルサイトで、フッターの固定位置を偽造しています。(iOS 5より前のiOS、2.2より前のAndriodなど)

これが私が使用しているJQueryコードです。これはうまく機能し、私が望むことを実行します。

function changeFooterPosition() {   
  $('.not-fixed').css('top', window.innerHeight + window.scrollY - 56 + "px");
}

$(document).bind('scroll', function() {
  changeFooterPosition();
}); 

だからそれはうまくいく。

私の質問は、少し遅延を追加して、小さなスクロールのたびにすばやくスナップするのではなく、フッターをフェードインさせたいということです。私は周りを見回して、私が使用できる次の方法を見つけましたが、それらが正しい方法であるかどうか、または上記のjsにそれらを追加する場所がわかりません。

.delay(1000).fadeTo('slow', 1)

この機能がJQueryMobileに存在することは知っていますが、JQueryMobile全体をこの1つの小さなことだけに使用したくはありません。

前もって感謝します。

4

3 に答える 3

0

アニメーション機能http://api.jquery.com/animate/を試してください

これは消えませんが、スムーズに動くはずです。

function changeFooterPosition() {   
  $('.not-fixed').animate({'top': window.innerHeight + window.scrollY - 56 + "px"}, 2000);
}

$(document).bind('scroll', changeFooterPosition); 
于 2012-04-25T20:20:09.313 に答える
0

変化する

$(document).bind('scroll', function() {
  changeFooterPosition();
}); 

$(document).bind('scroll', changeFooterPosition); 

変化する

$('.not-fixed').css('top', window.innerHeight + window.scrollY - 56 + "px");

var WantedSpeed = 2000;
$('.not-fixed').delay(1000).animate({
    top: window.innerHeight + window.scrollY - 56 + "px"
}, WantedSpeed, function() {
    // Animation complete.
})
于 2012-04-25T20:20:22.383 に答える
0

やりたいことは、スクロール コールバックを調整することです。

(function() {
  var scrollTimer = 0,
      $notFixed = $('.not-fixed');

  function changeFooterPosition() {   
    $notFixed.css('top', window.innerHeight + window.scrollY - 56 + "px").show(300);
  }

  $(document).bind('scroll', function() {
    $notFixed.hide();
    clearTimeout(scrollTimer);
    setTimeout(changeFooterPosition, 50);
  });
}());
于 2012-04-25T20:22:15.867 に答える