HTML:
<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");
});
它以这种方式工作:当你按下类“targetLink”的链接时,它会在它下面打开一个DIV。现在我需要修改js代码:当我点击然后链接它滚动到该打开的div的开头。我怎样才能实现它?提前谢谢。
答案 0 :(得分:0)
答案 1 :(得分:0)
我认为这就是你所需要的,也许更多:My jsfiddle。我不确定到目前为止你的工作是什么,但这可以做到我认为你想要的,而不需要额外的jquery插件等。
这是JS(检查jsfiddle for html):
$(".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' );
});
答案 2 :(得分:0)
尝试这个非常棒且简单的jQuery插件 - https://github.com/Ashwell/jquery-scrollThis
答案 3 :(得分: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');
};