1.我在页面加载后调用
mui.init({
show:{
aniShow:''fade-in'
})
但是默认效果还是‘fade-in-right’,
我去调试源码发现,一下时部分源码
alert(JSON.stringify($.options))// 弹出的信息显示没有初始化show参数
setTimeout(function(){
alert(JSON.stringify($.options))//异步执行后,弹出的信息显示有show这个参数
},2000)
var defaultOptions = {
swipeBack: false,
preloadPages: [], //5+ lazyLoad webview
preloadLimit: 10, //预加载窗口的数量限制(一旦超出,先进先出)
keyEventBind: {
backbutton: true,
menubutton: true
},
titleConfig: {
height: "44px",
backgroundColor: "#f7f7f7", //导航栏背景色
bottomBorderColor: "#cccccc", //底部边线颜色
title: { //标题配置
text: "", //标题文字
position: {
top: 0,
left: 0,
width: "100%",
height: "100%"
},
styles: {
color: "#000000",
align: "center",
family: "'Helvetica Neue',Helvetica,sans-serif",
size: "17px",
style: "normal",
weight: "normal",
fontSrc: ""
}
},
back: {
image: {
base64Data: '',
imgSrc: '',
sprite: {
top: '0px',
left: '0px',
width: '100%',
height: '100%'
},
position: {
top: "10px",
left: "10px",
width: "24px",
height: "24px"
}
}
}
}
};
//默认页面动画
var defaultShow = {
event:"titleUpdate",
autoShow: true,
duration: 300,
aniShow: 'slide-in-right',
extras:{}
};
//若执行了显示动画初始化操作,则要覆盖默认配置
为什么初始化的参数是异步获取到的,而不是同步,如果是同步的话就导致下面的覆盖默认的操作的代码无法执行,因为这是同步执行的,执行时show是不存在的,就无法覆盖init时的操作了
if($.options.show) {
defaultShow = $.extend(true, defaultShow, $.options.show);
}