H5移动端强制横屏

H5移动端强制横屏

月光魔力鸭

2021-09-27 14:37 阅读 89 喜欢 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


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
项目中需要使用treegrid,找了下easyui 和 ext都有,但是项目用的框架是 byyui,如果为了treegrid 就把这些都加载的话,感觉不太合算。找了大家常用的基于jquery的treegrid.
web开发中,前台有时候会需要一个随机数或序列,通常来说,这个随机数可能只在当前页面中使用,并不需要太过严格,大体上重复率低即可。
通过jspdf ,我们可以将页面或图片生成pdf下载下来,如果是一些复杂的页面,我们可以将页面转成图片,然后把图片加入到pdf中,生成并下载。
在我们web开发过程中经常会碰到针对table的一些dom操作,这里整理一下关于这方面的知识点。当然我们可以通过jquery这样的插件来处理,或许会更简单一些,不过现在简单说下原生JS是如何操作的
之前一直没面试过前端,今天有一个,先整理下需要问的问题和答案。这里都是一些简单的问题,关于当下比较流行的框架并没有涉及到..
现象:在IOS中,jsp页面绑定的点击事件,点击后延迟很大,接近1000ms,反应很慢
在我们通过canvs画图的时候经常会用到圆,且需要计算出圆上某点的坐标,由于我数学没学好,总是记不得怎么获取,这里记录下,加深记忆
开发的项目中有使用到微信开发,由于之前偶尔才用一次,也是用的别人的地址和测试号,这里记录下自己的操作。防止后续遗忘。