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 改变
});
}