0

スクロールループ内で関数を乗算するにはどうすればよいですか?

私は持っている:

$(window).scroll(function() {
b1Center = $("#block-1").offset().top - ( $(window).height() - divHeight )/2;
b1Bottom = $("#block-1").offset().top - $(window).height()
b1Top = $("#block-1").offset().top + divHeight;
if(getScrollTop() > b1Bottom && getScrollTop() < b1Top){
$("#block-1 .txt").css('marginTop', ( (getScrollTop()) *(1.6)) + 'px');
}...

それは常にスクロール機能内にある必要があり、私はすべてのボタンに同じブロックを持っているので:

http://jsfiddle.net/Dx3hr/27/

これがより理にかなっていることを願っています。

4

2 に答える 2

1

これを試して:

$(document).ready(function(){
    var divHeight = 700;
    $(window).scroll(function() {
        $(".blocks").each(function(){
            var this = $(this),
                Center = $(this).offset().top - ( $(window).height() - divHeight )/2,
                Bottom = $(this).offset().top - $(window).height(),
                Top = $(this).offset().top + divHeight;
            if(getScrollTop() > Bottom && getScrollTop() < Top){
                this.find('.txt').css('marginTop', ( (getScrollTop()) *(1.6)) + 'px');
            } 
        });    
    });    
});  
于 2012-10-09T05:00:46.657 に答える
0

これを .scrollTop() ループの中に入れます:

$('.block').each(function  () {
    var this_block = $(this);
    this_block.whateverFunction(you, want, to, do);
});

IDではなくボタンのクラスを使用してください...

于 2012-10-09T05:12:11.333 に答える