2014-05-21 98 views
1

新来的jQuery滚动窗口DIV的顶部上点击

我有一个手风琴使用此:

(function($) { 

var allPanels = $('.accordion > dd').hide(); 

$('.accordion > dt > a').click(function() { 
    allPanels.slideUp(); 
    $(this).parent().next().slideDown(); 
    return false; 


    }); 

})(jQuery); 

一个手风琴节是超长的,当你点击下一个将打开上方内容。

我希望有一种方法可以帮助您在单击a标签而不是只滑动内容时滚动到父div顶部的左侧区域。我确定你们其中一位专业人士知道如何。提前致谢。

页的结构类似于:

<dl class="accordion"> 
<dt>title</dt> 
<dd> 
    content 
</dd> 
<dt>title2</dt> 
<dd> 
    content2 
</dd> 
<dt>title3</dt> 
<dd> 
    content3 
</dd> 
</dl> 

回答

0

您可以修改您的代码,例如:所以

(function($) { 

var allPanels = $('.accordion > dd').hide(); 

$('.accordion > dt > a').click(function() { 
    allPanels.slideUp(); 
    $(this).parent().next().slideDown(); 

    $("html,body").animate({scrollTop: $("#left-area").offset().top}, 300); 

    return false; 


    }); 

})(jQuery); 
+0

非常感谢你,它对我的​​应用程序很好 –

+0

我没有声望来投票这个。 –

+0

@JoeBarrett没关系,你应该能够接受它作为正确的答案。如果没有,它没什么大不了的。乐于帮助。 – SteamDev

0

,我只想澄清,你想其他部分关闭,窗口向下滚动到手风琴开放部分标题的ID?

如果你可以发布一个URL或JS小提琴这将是有益的,但是这样的事情,也许?

var allPanels = $('.accordion > dd').hide(); 

$('.accordion > dt > a').click(function() { 
    allPanels.slideUp(); 
    $(this).parent().next().slideDown();  

    $('html, body').animate({ //if you're wanting the whole window to scroll down 
    scrollTop: $("div#left-area").offset().top 
    }, 1000); 

    return false; 
}); 

如果你发布的jsfiddle我可以鼓捣,我会检验和修订(如果它不作为就是工作 - 我是一种假设它不会,因为不看您的HTML结构,我觉得我可能很容易忽略了一些东西)。

编辑:我认为有一个更好的解决方案,这不使用个人ID动画向下滚动,但我需要看到你如何构造它的例子。

+0

谢谢你,你是一个codeStar。尽管我使用了其他方法。太感谢了。 –

+0

没问题 - 无论如何,SteamDev的解决方案基本上是一样的,我们同时发布。就像我说的,可能有一种更广泛的应用这个解决方案的方法,使用'$(this)'而不是ID'#left-area'作为目标,但是我必须看到你的HTML结构。 –