2013-03-19 52 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'); 
};