项目在pad端为了更贴合用户体验,加入了横竖屏自动切换,让用户能体验到横屏浏览的体验。
项目布局是以win+frm的形式,所以在横竖屏切换时需要设置监听去重新计算页面高度并进行配置。
同时需要注意的点是:IOS横竖屏切换时并不会自动将页面宽度和高度互换,需要我们自行在代码中设置切换。
代码贴上:(可根据自身项目需求变更、调试)
function orientationchange(frameName){
window.addEventListener("orientationchange", function(){
//重新适配头部高度,并取值
var header_h = 0;
if($api.byId('aui-header')){
$api.fixStatusBar($api.byId('aui-header'));
header_h = $api.offset($api.byId('aui-header')).h;
}
//重新适配底部高度,并取值
var footer_h = 0;
if($api.byId('aui-footer')){
$api.fixTabBar($api.byId('aui-footer'));
footer_h = $api.offset($api.byId('aui-footer')).h;
}
//判断是否IOS,若为横屏状态则将页面宽度设置为高度
var winHeight = api.winHeight;
if(window.orientation == 90 && api.systemType == 'ios'){
winHeight = api.winWidth;
}
api.setFrameAttr({
name: frameName,
rect: {x:0, y:header_h, w:'auto', h:winHeight - header_h - footer_h},
});
}, false);
}本文为翻滚的胖子原创文章,转载无需和我联系,但请注明来自猿教程iskeys.com
