http://hockeyapp.net/javascripts/jquery.features.jsにあります
ここでは少しきれいです:
function f_scrollTop() {
return f_filterResults(
window.pageYOffset ? window.pageYOffset : 0,
document.documentElement ? document.documentElement.scrollTop : 0,
document.body ? document.body.scrollTop : 0
)
}
function f_filterResults(e, t, n) {
var r = e ? e : 0;
return t && (!r || r > t) && (r = t), n && (!r || r > n) ? n : r
}
$(document).ready(function() {
var e = navigator.userAgent.match(/(iPad|iPhone|iPod)/i) ? !0 : !1;
e ? ($("#crashes").css("opacity", 1),
$("#feedback").css("opacity", 1),
$("#distribution").css("opacity", 1),
$("#analytics").css("opacity", 1),
$("#customers").css("opacity", 1))
: ($(window).scroll(function() {
var e = $("body").height(),
t = f_scrollTop(),
n = 0;
t > 250 && (n = 1), $("#crashes").css("opacity", n)
}), $(window).scroll(function() {
var e = $("body").height(),
t = f_scrollTop(),
n = 0;
t > 2250 && (n = 1), $("#feedback").css("opacity", n)
}), $(window).scroll(function() {
var e = $("body").height(),
t = f_scrollTop(),
n = 0;
t > 3100 && (n = 1), $("#distribution").css("opacity", n)
}), $(window).scroll(function() {
var e = $("body").height(),
t = f_scrollTop(),
n = 0;
t > 4400 && (n = 1), $("#analytics").css("opacity", n)
}), $(window).scroll(function() {
var e = $("body").height(),
t = f_scrollTop(),
n = 0;
t > 3200 && (n = 1), $("#customers").css("opacity", n)
})), $(".switch-monthly").live("click", function(e) {
$(this).addClass("switch-yearly"), $(this).removeClass("switch-monthly"), $(".price.monthly").fadeOut(), $(".price.yearly").fadeIn(), $(".save").slideDown(), e.preventDefault()
}), $(".switch-yearly").live("click", function(e) {
$(this).removeClass("switch-yearly"), $(this).addClass("switch-monthly"), $(".price.monthly").fadeIn(), $(".price.yearly").fadeOut(), $(".save").slideUp(), e.preventDefault()
}), $(".fancybox").fancybox({openEffect: "elastic",closeEffect: "elastic"})
});
f_scrollTop
そしてf_filterResults
、ページがどれだけスクロールされたかを見つけるためのクロスブラウザーの方法を形成します。
では、 5document.ready
つの関数を にバインドし$(window).scroll
ます。スクロールするたびに、 を使用して距離を取得し、 の値に応じて 1 または 0 にt = t_scrollTop()
設定します。次に、各 div ( 、、、)の不透明度を に設定します。(以下のより良い説明)n
t
#crashes
#feedback
#distribution
#analytics
#customers
n
そのため、いつ表示されるかはわかりませんdiv
。スクロールするたびに、不透明度があるかどうかがチェックされ、それに応じて不透明度が設定されます。また、彼らは を使用しませんanimate
が、代わりにhttp://hockeyapp.net/stylesheets/public.csstransition
で 4 つの に CSS セットを持っています(それを読もうとしないでください):div
#distribution,
#crashes,
#feedback,
#analytics {
opacity: 0;
-webkit-transition:opacity .5s ease-in-out 0s
}
次のような行で:
t > 250 && (n = 1), $("#crashes").css("opacity", n)
コンマ演算子は、「各式を評価し、式全体の値が最後の値になる」ことを示しています。ここでは、ソースが縮小されているため、簡潔にするために使用されている可能性があります。
n
はすでに 0 で&&
短絡しているため、評価される場合はt > 250
、(n = 1)
そうでない場合はn
0 のままになります。次に、不透明度を に設定しn
ます。