单击滚动窗口到div顶部

时间:2014-05-21 20:17:56

标签: jquery html jquery-ui-accordion

jquery新手

我有手风琴使用这个:

(function($) {

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

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


  });

})(jQuery);

其中一个手风琴部分超长,当您点击下一个时,它会在内容上方打开。

我希望在单击a标签而不是仅向上滑动内容时滚动到父div#left-area顶部的方法提供帮助。我相信你们中的一位职业选手知道如何。提前谢谢。

页面的结构如下:

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

2 个答案:

答案 0 :(得分:1)

您可以修改代码:

(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);

答案 1 :(得分: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为向下滚动设置动画,但我需要看一个如何构建它的示例。