微信H5开发,怎样禁止手机横屏

最近开发微信H5时遇到一个非常蛋疼的问题,就是手机横屏显示时,排版出问题了,严重变形。就像下面这样。

页面一团糟

在网上找了很多方法,下面网友的建议方法:

网上的一些方法

后来我就把各个大神做的H5都拿出来看看,发现基本上有问题。也就是说横屏的体验是很差的,毕竟微信H5是二次开发,没有权限获取相关接口。

折腾了一天了,没有太好的解决方法。所以在开发的时候,就是基于手机竖屏了,也就是让所有的图片,标签都旋转90度。但前提是必须禁止手机屏幕旋转。

图片旋转90度的css代码:-webkit-transform: rotateZ(90deg);transform: rotateZ(90deg);

另外一种方法就是,检测手机屏幕是否是横屏了,css3@media{判断手机横竖屏}:

检测手机横屏代码:

@media all and (orientation : landscape) {

.heng{height:100%;width:100%;text-align:center;background:#fff;position:absolute;z-index: 99999;display:block;}/*横屏时的样式*/

.heng p{margin:0 auto;color:#000;margin-top:90px;}

}

检测手机竖屏代码

@media all and (orientation : portrait){

h2{color:green;}/*竖屏时样式*/

效果

正常情况

检测到手机旋转时

当然,css可以做到的,js也一样可以。我们可以通过访问对象的matches属性:

if(mql.matches) {console.log('portrait'); // 竖屏}else {console.log('landscape'); // 横屏

监听屏幕方向变化,通过MediaQueryList对象的addListener方法;

var mql = window.matchMedia('(orientation: portrait)');

console.log(mql);

function handleOrientationChange(mql) {

if(mql.matches) {

console.log('portrait'); // 打印竖屏

}else {

console.log('landscape'); // 打印横屏

// 打印日志

handleOrientationChange(mql);

// 监听屏幕模式的变化

mql.addListener(handleOrientationChange);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丶乘风破浪丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值