2012-10-06 78 views
2

手風琴是使用列表ul和li而不是div來構建的。 與大多數有此問題的人一樣,手風琴某些部分的內容相當長,當我觸發其中一個較大的標題時,用戶就會滾動查看所有內容;在下面是另一個li標題點擊和手風琴關閉並打開最後一個標題。由於該部分的內容也很大,所以用戶留在最後標題部分的底部,並且必須再次向上滾動。jquery accordion - 滾動到標頭

在研究這個問題的時候,很多人建議使用animate()函數來重新回到手風琴的頂端。 我的問題是,因爲我使用開源代碼,我不願編輯它太多,我嘗試過,但迄今爲止沒有成功。

誰能幫助? [這裏是jQuery的]


(function(jQuery){ 
    jQuery.fn.extend({ 
     accordion: function() {  
      return this.each(function() { 

       var $ul = $(this); 

       if($ul.data('accordiated')) 
        return false; 

       $.each($ul.find('ul, li>div'), function(){ 
        $(this).data('accordiated', true); 
        $(this).hide(); 
       }); 

       $.each($ul.find('a'), function(){ 
        $(this).click(function(e){ 
         activate(this); 
         return void(0); 
        }); 
       }); 

       var active = (location.hash)?$(this).find('a[href=' + location.hash + ']')[0]:''; 

       if(active){ 
        activate(active, 'toggle'); 
        $(active).parents().show(); 
       } 

       function activate(el,effect){ 
        $(el).parent('li').toggleClass('active').siblings().removeClass('active').children('ul, div').slideUp('slow'); 
        $(el).siblings('ul, div')[(effect || 'slideToggle')]((!effect)?'fast':null); 
       } 

      }); 
     } 
    }); 
})(jQuery); 

謝謝:)

[編輯]

我知道你可能需要在這裏它從我的HTML觸發手風琴代碼是:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('ul').accordion(); 

    }); 
</script> 

隨着更多的研究有人建議scrollTo()所以我也試過這個::

 <script type="text/javascript"> 
     $(document).ready(function() { 
      $('ul').accordion({ 
    change: function() { 
     document.scrollTo(0, 0); 
    } 
}); 
     }); 
    </script> 

但這也沒有工作。 「嘆氣」..有誰知道我是否在正確的軌道? 謝謝:)

回答

1

我解決了這一問題:

這是一個有點作弊的,但是這是我做的。

添加滾動類每個我想要的HREF鏈接點擊class="scroll"

加入這個腳本的頁面(我把我的一個div叫#acc下)

<script>$(document).ready(function($) { 

    $(".scroll").click(function(event){  
     event.preventDefault(); 
     $('html,body').animate({scrollTop:$("#acc").offset().top}, 500); 
    }); 
});</script> 

唯一我改變了原來的#acc。這是圍繞手風琴UL類的我的div的名字。

這是我得到的滾動http://www.sycha.com/jquery-smooth-scrolling-internal-anchor-links

我希望這可以幫助別人尋找這個問題的代碼。 ^。^