首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在第三方幻灯片动画后执行代码?

问如何在第三方幻灯片动画后执行代码?
EN

Stack Overflow用户
提问于 2017-06-13 15:11:47
回答 1查看 49关注 0票数 0

背景:--我正在使用物化 JS创建可折叠的div。当单击具有可折叠标头类的div时,具有类可折叠体的同级div上会出现幻灯片下移动画,显示可折叠体的内容。

我想要完成的是,当点击一个可折叠的标题时,浏览器应该滚动到该div的顶部,以便内容在用户的全部视图中。我使用了一个on事件,它可以在第一个可折叠的地方很好地工作。但是,如果您有一个可折叠的打开,然后单击另一个打开它,它就不会正确地滚动到单击的div的顶部(它将滚动到主体的中间,或者远远高于div的顶部)。

JS on单击功能:https://jsfiddle.net/f83dct8f/4/

我能够通过编辑物化JS本身来完成我想要做的事情。在我编辑之前,这一行是什么样子的:

​

代码语言:javascript
复制
object.siblings('.collapsible-body').stop(true, false).slideDown({
  duration: 350,
  easing: "easeOutQuart",
  queue: false,
  complete: function() {
    $(this).css('height', '');
  }
});

​

我将以下内容添加到上述语句的完整部分,以完成我想要的任务:

代码语言:javascript
复制
$('body').animate({scrollTop: $('.collapsible-header.active').offset().top },'slow');

问题:我不想编辑物化的第三方代码来完成我所需要的,所以我需要找到一种方法来在幻灯片完成后实现身体动画,而不需要编辑物化动画。我知道一定有办法的?

我尝试过可折叠体上的事件队列,这似乎很有希望,但我的测试控制台打印在动画期间执行。见下文。如果有人能为我指明正确的方向,我会非常感激的。

代码语言:javascript
复制
$('.collapsible-header.active')
.siblings('.collapsible-body').slideDown().queue(function(){    

console.log('DONE');

});
EN

回答 1

Stack Overflow用户

发布于 2017-06-13 15:45:32

您应该能够在初始化您的onOpen时使用.collapsible选项。传入一个函数,以便在打开手风琴时执行。函数接收元素作为参数。

代码语言:javascript
复制
$(document).ready(function() {
    $('.collapsible').collapsible({
        onOpen: function(el) {
            $('body').animate({scrollTop: el.offset().top },'slow');
        }
    });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44525400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档