2013-03-19 58 views
1

HTML:如何使滾動到開DIV

<a class="targetLink" href="#">LINK1</a> 
<div id="text1" style="display: none;">text1 div</div> 

<a class="targetLink" href="#">LINK2</a> 
<div id="text2" style="display: none;">text2 div</div> 

<a class="targetLink" href="#">LINK3</a> 
<div id="text3" style="display: none;">text3 div</div> 

JS:

$("a.targetLink").toggle(function() { 
    $(".open").slideUp(350); 
    $(this).next("div").slideDown(350).addClass("open"); 
}, function() { 
    $(this).next("div").slideUp(350).removeClass("open"); 
}); 

它的工作原理是這樣的:當U新聞與類鏈接 「TargetLink的」 它打開它下面的一個DIV。現在我需要修改js代碼來:當我點擊鏈接它滾動到打開的div的開頭。我怎樣才能實現它?提前致謝。

回答

0

我覺得這是你所需要的,也許更多:My jsfiddle。我不確定你到目前爲止的工作,但這是我認爲你要做的,不需要額外的jquery插件等。

這裏是JS(檢查html的jsfiddle) :

$(".pop").hide(); 
$(".targetLink").on("click", function(e) { 
    e.preventDefault(); 
    var n = $(this).next(); 
    if(!$(n).hasClass('open')){ 
     $(".open").removeClass('open').slideUp(200); 
     $(n).addClass('open').slideDown(200); 
    } 
}); 


$(".nav").on("click", function(event){ 
    event.preventDefault(); 
    var dest=null; 
    if(($($(this.hash)).offset().top) > ($(document).height()-$(window).height())){ 
     dest= $(document).height()-$(window).height(); 
    }else{ 
     dest=$($(this.hash)).offset().top; 
    } 
    $($(this.hash)).trigger("click"); 
    $('html,body').animate({scrollTop:dest}, 500, 'swing'); 

}); 
0

這應該做你問什麼:

self.scrollToDiv = function scrollToDiv(element,minus){ 
    element = element.replace("link", ""); 
    if(minus==null){ 
     minus=0; 
    } 
    $('html,body').unbind().animate({scrollTop: $(element).offset().top+minus},'slow'); 
};