对于黑莓横竖变化反差很大想必大家都深有体会,于是偶花了些时间,总结了两个解决的办法!
第一种:直接禁止切换横竖屏
优点:省事
缺点:无横竖屏切换,只能有一种显示风格,横屏或竖屏.
办法:
在xml文件中配置相关的属性:
<rim:orientation mode="landscape" />这句话在xml中配置后只会出现横屏,一劳永逸。
https://developer.blackberry.com/html5/documentation/rim_orientation_element_1594186_11.html
第二种:根据竖屏设置相对的竖屏样式
优点:可以设置相应的屏幕样式,可多种风格显示应用
缺点:每个界面弄两个样式,横竖屏,所以麻烦。
办法:
通过实践监听”orientationchange“来监听页面变换,然后在监听之后通过方法改变body的class属性的值,从而改变横竖屏样式,说白了就是横屏一个样式,竖屏一个样式。
例子如下:js中:
window.addEventListener('load', setOrientation, false); //使用 load 事件的侦听器来初始化设置类名
window.addEventListener('orientationchange', setOrientation, false);//对 orientationchange 事件使用另一个侦听器
//一个在 orientationchange 事件发生时,替换类名的函数
function setOrientation() {
var orient = Math.abs(window.orientation) === 90 ? 'landscape' : 'portrait';
var cl = document.body.className;
cl = cl.replace(/portrait|landscape/, orient);
document.body.className = cl;
}
css中:
.portrait body div { width: 10%; } 横向样式。
.landscape body div { width: 15%; }竖向样式。
html中:
<body class="portrait">
例子收集于:http://davidbcalhoun.com/2010/dealing-with-device-orientation
文件就这样布置了,js就这样监听,主要改变就在css中了。总结完毕收工。