mui-collapse 折叠后不见 mui-scroll 滚动到顶

mui-collapse 在折叠的时候,如果折叠的高度很大,会导致页面一片空白,其实是收缩到上方不可见区域了。

需要监听.mui-collapse 元素的样式改变事件,把页面滚到顶部(或者根据实际情况滚动到当前点击对象的当前高度)

mui-scroll 滚动到顶:

$('.mui-scroll-wrapper').scrollTop(0); //这句是不起作用的
mui('.mui-scroll-wrapper').scroll().setTranslate(0,0,100); //要用这个才行, 0,0 是位置,100 是滚动到位延迟时间

代码如下:

//监听折叠事件
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
var elements = document.querySelectorAll('.mui-collapse');
var observer = new MutationObserver(function (mutations) {
    mutations.forEach(function (mutation) {
        if (mutation.type == "attributes") {
            //如果当前元素不可见,则将页面滚动到顶部
            if ($(mutation.target).offset().top < 0) {
                mui('.mui-scroll-wrapper').scroll().setTranslate(0,0,100);
            }
        }
    });
});
for (var i = 0; i < elements.length; i++) {
    observer.observe(elements[i], {
        attributes: true,  //监听属性变动,
        attributeFilter: ['class'] //属性过滤器,只监听 class 改变
    });
}
muimui-collapsemui-scrollMutationObserver

我来吐槽

*

*