2013-02-27 62 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); 
}