H5移动端强制横屏

H5移动端强制横屏

月光魔力鸭

2021-09-27 14:37 阅读 476 喜欢 0 强制横屏

当一些业务必须通过横屏来实现,但是又没有原生来做,只能通过h5的时候怎么办?

通过css的transform来实现旋转,不过旋转后的一些位置计算就需要重新调整了。 transform的 rotate 是通过中心点进行旋转的,可以计算出来需要移动的距离。

//获取当前宽高,计算,并旋转
var width = window.innerWidth,height = window.innerHeight;
if(width < height){
  var diff = height/2-width/2;
  document.body.style.width = height+'px';
  document.body.style.height = width+'px';
  document.body.style.transform='rotate(90deg) translate('+diff+'px,'+diff+'px)';
}
//绑定事件
var evt = "onorientationchange" in window ? "orientationchange" : "resize";
window.addEventListener(evt, function () {
  setTimeout(function(){
    var width1 = window.innerWidth,height1 = window.innerHeight;
    if(width1<height1) {
      var diff1 = height1/2-width1/2;
      document.body.style.width = height1+'px';
      document.body.style.height = width1+'px';
      document.body.style.transform='rotate(90deg) translate('+diff1+'px,'+diff1+'px)';
    } else {
      document.body.style.width = '100%';
      document.body.style.height = '100%';
      document.body.style.transform='';
    }
  },400)

})

转载请注明出处: https://chrunlee.cn/article/h5-hrizontal-screen-in-js.html


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
在文件上传的时候,经常会对文件的mime进行限制,比如图片 image/jpg 等,让用户可以选择图片,而不是其他的文件。
在我们web开发过程中经常会碰到针对table的一些dom操作,这里整理一下关于这方面的知识点。当然我们可以通过jquery这样的插件来处理,或许会更简单一些,不过现在简单说下原生JS是如何操作的
最近折腾的少了,实在没的写了,大约三四个月没更新了,先水一篇。
最近一直在想着抓一些网盘数据,进行资料归拢,可是当我真正开始的时候.. 还是遇到了反爬,当然我本身就有心理预期,这是肯定会碰到的,只是没想到会在代理IP上耗费这么久,之前的时候也处理过代理IP ,可是由于一知半解,导致很多配置都不理解,debug全靠猜...
突然来了一个调研任务,想要实现一个类似3D虚拟展厅类似的需求,主要就是放一些学生的作品,然后预览啥的,效果还是要全景的效果。 经过一番调查,最终锁定了以前从未接触过的krpano。
今天刷codewars的题目的时候碰到一个通过js来实现字符串转base64的题目,base64虽然在js或nodejs中经常用,但是我还真没有仔细去看过原理以及如何实现,这回绕不过去了,赶紧找了找资料看了下。
本文概括了递归、闭包、原型、继承,理清这些基本的概念,有助于你接纳更多的东西,我们会在下一个章节对函数进行更深入的讨论。
做作业的时候,需要在手机上预览下,但是发现如果想在移动端上展示A4样子的作业还是挺麻烦的,最后还是准备通过图片来展示,然后移动端缩放呗。。