打开后滚动到 Accordion Item Top(基础框架)

L84*_*L84 5 accordion zurb-foundation

我正在使用ZURB Foundation (v6) Accordions

当手风琴打开时,我想将页面滚动到该手风琴项目的顶部。我可以运行这个代码:

$("#arf").on("down.zf.accordion", function() {
   $('html,body').animate({scrollTop: $(this).offset().top}, 'slow');
});
Run Code Online (Sandbox Code Playgroud)

当然,这会将页面滚动到手风琴的顶部,而不是手风琴项目。我将如何修改此代码以在打开时滚动到手风琴的项目?

L84*_*L84 3

这是我发现有效的解决方案。这适用于 Foundation for Sites 版本 6。

$("#form-selector").on("up.zf.accordion", function(event) {
    setTimeout(function(){
        $('html,body').animate({scrollTop: $('.is-active').offset().top}, 'slow');
    }, 250); //Adjust to match slideSpeed
}); 
Run Code Online (Sandbox Code Playgroud)

使用是setTimeout因为slideSpeed手风琴的 。如果您不使用setTimeout它,它会立即触发滚动down.zf.accordion,从而滚动到错误的位置。

您也可以down.zf.accordion使用 来代替up.zf.accordion,但是,如果您使用down.zf.accordion,一旦页面加载(当手风琴初始化并打开时)它就会触发并滚动到手风琴项目。这在我的情况下是不需要的,但在某些情况下可能是需要的。