4

我试图让一个 div 进入视图,并且 div 元素正在动态添加.. 所以我分配了一个链接,单击该链接可以将 div 元素带入视图,无论它是否已经在视图中。所以当我点击链接时,如果我试图进入视图的 div 已经在视图中,它将远离我的视图。这是一个错误?

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 回答