2010-09-03 64 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