2013-02-27 55 views
4

我试图让div进入视图,并且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'); 
} 
+2

什么ü用它'意思将离开我的看法... ...我没有看到你在提供的小提琴中说的东西... – bipen 2013-02-27 11:28:25

+0

我们点击链接保持不变 – Swarne27 2013-02-27 11:30:23

+0

然后你没有尝试点击链接...通过点击链接,即时试图让div 1查看..因为div1已经在view..the div6来在点击查看 – sam 2013-02-27 11:30:51

回答

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); 
}