2010-09-03 68 views

回答

1

由於它們都有不同的高度,因此需要獨立存儲和使用每個高度,因此我建議使用$.data().data()。還要將您的ID更改爲類,因爲它們應該是唯一的。

$('.slickbox').hide().each(function() { 
    $.data(this, 'height', $(this).height()); 
}); 
$('.more a').toggle(function() { 
    var sb = $(this).parent().prev('.slickbox').slideDown(3200); 
    $('html, body').animate({ 
     scrollTop: '+=' + sb.data('height') 
    }, 3200); 
    return false; 
}, function() { 
    var sb = $(this).parent().prev('.slickbox').slideUp(3200); 
    $('html, body').animate({ 
     scrollTop: '-=' + sb.data('height') 
    }, 3200); 
    return false; 
}); 

You can test it out here,這個循環遍歷並存儲每個.slickbox(現在用的是類!),並將其存儲的高度。當每個鏈接被點擊時,它會特別切換其前面的class="slickbox"元素,並使用其存儲的'height'值進行滾動。

+0

該死的男人!你已經度過了我的一天:)再次感謝! PS:你今天教過我Jquery的手風琴行爲。謝謝 – Martin 2010-09-03 19:37:24