4

ビューにdivを取り込もうとしていて、div要素が動的に追加されているので、クリックすると、すでにビューにあるかどうかに関係なく、div要素をビューに取り込むことができるリンクを割り当てています。そのため、リンクをクリックしたときに、ビューにアクセスしようとしているdiv imがすでに表示されている場合は、ビューから消えます。バグですか?

http://jsfiddle.net/xFu3M/6/

実例を追加しました。

コードは次のようになります

$(".testClick").on("click",function(e){
    e.preventDefault(); 
      // Call the scroll function
    goToByScroll("indID"+1);
});


function goToByScroll(id){
      // Reove "link" from the ID
    id = id.replace("link", "");
      // Scroll
    $('.contentBody').animate({
        scrollTop: $("#"+id).offset().top},
        'slow');
 }
4

1 に答える 1

1

親オフセットも考慮に入れると便利です。

LIVE DEMO

$(document).ready(function(){
    $(".wrapper").css({"width" : $(window).width() , "height" :  $(window).height()} );  
    $(".testClick").on("click",function(e){      
        e.preventDefault(); 
        goToByScroll("indID1"); // try change to indID4
    });       
});

function goToByScroll(id){
    var el = $('#'+id);
    var elOffs = el.offset().top;
    var parOffs = el.closest('.contentBody').offset().top;
    $('.contentBody').stop().animate({ scrollTop: elOffs - parOffs },800);
}
于 2013-02-27T11:42:17.097 に答える