手風琴是使用列表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>
但這也沒有工作。 「嘆氣」..有誰知道我是否在正確的軌道? 謝謝:)