2

質問のタイトルが正確かどうかは100%わからないので、誰かが私がやりたいことを正確に説明できるかどうかを変更したいと思います。

私は画像を含むdivを持っており、最初の画像の下に各「プロジェクト」のコピーを作成します。私がやりたいのは位置です。プロジェクトの最初の画像が特定のポイントに到達したときにdivを修正しました。これまでのところ、ページは右にスクロールされます。

使い方

最初に修正されたdivに対して移動するdivの左側の位置をチェックし、それが(fixedLeft + 400)よりも十分に近くない場合、クラスがスワップし、スタックした元のdivが順調に進み、新しいdivが固定されます。

十分にテストされていませんが、うまく機能します。少しデバッグする必要がありますが、元に戻そうとして行き止まりになっています。

これが私のフィドルです-大きなバージョン=画像はおそらく大きすぎますhttp://fiddle.jshell.net/tara_irvine/d5VdF/12/show/

コードhttp://jsfiddle.net/tara_irvine/d5VdF/12/のフィドル部分

私のコンテンツは動的であり、すべて(コンテンツとコピー)は非表示のナビゲーションに基づいているため、コードから多くのものが削除されています。これは無視できる可能性があります。

誰かがそれがどのように機能するべきかという論理を通して私に話すことができたとしても、それは助けになるでしょう。

私は本当に誰かが助けてくれることを願っています。どうもありがとう

4

1 に答える 1

1

各li要素に動作を追加することは、問題を解決するための奇妙な方法のように思われます。最初に最初のコピーコンテナを固定コピーとして設定してから、にシングル$(window).scrollを入れて$(document).ready、そのオフセットを追跡したいと思います。特定のしきい値に達したら、クラスを変更します。これも元に戻すのが簡単なはずです。

更新:これは私のために働いています

$(document).ready(function(){
    $(window).scroll(function (){   
        var offset = $(".fixed-copy").offset().left;
        $(".fixed-copy").find(".offsetLeftGroupPrev").html(offset);     
        var next = $(".fixed-copy").parents("ul").next("ul.imgGroup").find(".copy-container");      
        var prev = $(".fixed-copy").parents("ul").prev("ul.imgGroup").find(".copy-container");  

        if(offset > next.offset().left){
            $(".fixed-copy").removeClass("fixed-copy");
            next.addClass("fixed-copy");
        }   

        if(prev!=null && prev.offset() != null){    
            if(offset < prev.offset().left){
                $(".fixed-copy").removeClass("fixed-copy");
                prev.addClass("fixed-copy");
            }
        }
   });  
});
于 2012-06-11T16:54:13.290 に答える