2014-10-17 113 views
0

我有一系列关于刚完成开发的应用程序的章节。我正在使用jQuery的scrollTo插件。对我来说,过去总是很好。ScrollTo()函数无法正常工作

哪些应用程序是假设做的是以下几点:

  1. 所有部分负荷和第一部分立即展开,一切仍然崩溃(这工作)
  2. 您可以点击另一部分,当前打开的部分就会崩溃,而你点击了一个将扩大(这工作)
  3. 扩建完成后,该窗口将滚动到扩展部分的顶部(这不起作用)

我需要第三步的帮助。我的代码如下。

我已经在scrollTo()插件和ScrollTop的使用上搜索了各种主题。我已经尝试过,但没有任何改变。

我想知道是否有事情做与当切换功能的调用,但我“不能确定。

我真的很希望能在这里找到答案。如果你需要进一步的解释或代码请让我知道!

//module expansion and contraction 
$('.module-heading').click(function(){ 
    var id = $(this).attr('id'); 

    var data = $(this).data('toggle'); 
    $('.app-section').each(function(){ 
     if($(this).is(':visible')){ 
      $(this).toggle('slow'); 
     } 
    }) 
    $(data).toggle('slow', function(){ 
     $(id).scrollTo(100);  
    }); 
}); 

这里是样本HTML以及

<div class='row module-heading module-heading-plain' data-toggle='#questionaire'> 
    <div class='form-group'> 
     <div class='col-md-12'> 
      <h4 class='text-info'> 
       Pre-Application Questionaire 
      </h4> 
     </div> 
    </div>     
</div> 
<span id='questionaire'> 
     <!-- form goes here --> 
</span> 

这里是一个小提琴链接http://jsfiddle.net/5q48n0z1/4/

+0

你可以发布'jsFiddle'向我们展示问题吗? – melancia 2014-10-17 17:59:50

+1

'$(id)'应该可能是'$(“#”+ id)' – canon 2014-10-17 18:00:12

+0

让我得到一个小提琴 – 2014-10-17 18:02:01

回答

2

看起来好像你想滚动身体到新的部分。所以,我们需要针对HTML /身体为了做到这一点(fiddle):

$('.module-heading').click(function(){ 

    var $this = $(this); 

    $('.app-section:visible').hide("slow"); 

    $($this.data('toggle')).show('slow', function(){ 
     $("html,body").animate({ 
      scrollTop: $this.offset().top 
     }); 
    }); 

}); 

注意:您需要有溢出的内容,以滚动体。您可以考虑在身体中添加一些填充。

+0

仍然不能正常工作 – 2014-10-17 18:01:46

+1

最后一些代码是有道理的。 +1 – melancia 2014-10-17 18:17:42

+0

此版本不适用于实时模型,请耐心等待我试图获得此作品 – 2014-10-17 18:18:57