有时候正常竖屏开发满足不了我们的需求,需横屏开发

  • 开发思路:把这个body利用css3 transform rotate 旋转90度,js判断竖屏情况下的宽高和横屏下的宽高
示例:
<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8"><title>demo</title><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no" />
</head>
<style>* {margin: 0;padding: 0;box-sizing: border-box;}html {/*用于 获取 屏幕的可视宽高*/width: 100%;height: 100%;overflow: hidden;}body {/*让 body 初始 width 和 height 就 等于 页面可视区域的 宽高*/position: fixed;left: 0;top: 0;width: 100%;height: 100%;display: flex;}@media screen and (orientation:portrait) {/*竖屏样式*/body {transform-origin: 0 0;transform: rotateZ(90deg) translateY(-100%);}}.box{width: 100%;height: 100px;background: #009F95;}
</style><body><div class="box">内容区</div><script>(function() {function resize() {var body = document.getElementsByTagName('body')[0];var html = document.getElementsByTagName('html')[0];var width = html.clientWidth;var height = html.clientHeight;var max = width > height ? width : height;var min = width > height ? height : width;body.style.width = max + "px";body.style.height = min + "px";}resize();window.addEventListener("resize", resize)})();</script>
</body></html></html></html>
效果图:

注意点:

  • 因为横屏开发我们肯定是按照横屏的设计图尺寸来进行开发的,我们实际上是没有旋转手机而是把整个body进行旋转了90度,让 body 初始 width 和 height 就等于页面可视区域的宽高。如果用户手机开启了屏幕旋转那么用户在转动手机后我们的body宽高就发生了改变,与横屏设计图开发出来的效果肯定不适配了。
  • 解决方案:
  1. 如需要就做横竖屏两套UI(既然要求了横屏开发那这种需求应该很少应该只做横屏)。
  2. js监测窗口变化,监测用户是否旋转了屏幕(window.orientation),如开启手机旋转后屏幕旋转了可以增加遮罩提示用户关闭手机旋转后使用,类似于王者新打开活动页有个横屏提示一样

end~~~

如有错误或观点不一致的请评论留言共同讨论,本人前端小白一枚,根据自己实际项目遇到的问题进行总结分享,谢谢大家的阅读!

H5横屏开发、vue横屏开发@令狐张豪相关推荐

  1. vue项目使用公共js方法@令狐张豪

    我们在做项目中会用到很多js方法,然后有些方法是通用的我们需要进行封装使用 在src下创建utils目录并创建utils.js文件 utils.js文件 export default {//判断手机机 ...

  2. vue 生成二维码插件@令狐张豪

    安装npm npm install qrcodejs2 --save cnpm install qrcodejs2 --save //推荐使用淘宝镜像 在使用的组件里引入qrcodejs2js文件 i ...

  3. 解决在小程序/H5上点击输入框键盘弹起后弹框显示不全问题@令狐张豪

    要实现的效果图: 解决思路: 先禁止input键盘弹起时,是否自动上推页面: 点击input的时候获取键盘弹起来的高度: 把获取出来的高度赋值到弹框的margin-bottom上: 键盘失焦或弹框关闭 ...

  4. vue中class类名如何拼上循环出来的下标?@令狐张豪

    在项目中很多地方我们会用到循环一个div,但是这个类名又不能写死了,今天巩固下class类名上如何拼上循环出来的下标 这里就直接上代码,简洁易懂 <div v-for="(item,i ...

  5. H5页面初次加载swiper导航切换按钮可以点击,刷新后就失效不可点击问题@令狐张豪

    原因:加载顺序的问题,数据还没有完全加载的时候就已经渲染swiper了 解决方案:(在swiper加上这两行代码) observer:true,//修改swiper自己或子元素时,自动初始化swipe ...

  6. axios拦截器 @令狐张豪

    下面是一个简易的axios拦截器使用的demo,主要看下代码注释,详细可参考axios官方API axios let app = new Vue({el: "#app",data( ...

  7. 传统html中使用vant @令狐张豪

    这里说的是传统html哈.传统html,不是vue脚手架,最近接手了一个项目,是前后端不分离的,前端是用html写的vue,没使用脚手架,这时候我们想使用vue的一些UI组件库 开始很踩了很多坑,网上 ...

  8. 解决小程序底部导航在iphone x及以上机型上安全区域的适配问题@令狐张豪

    问题点:小程序底部导航如果写固定的位置在安卓系统上是没有问题的,但是在iPhone X及以上机型有安全区域的机器上就显得有点太靠下了,我们可以写成动态的: 解决思路:判断是Android 还是 iOS ...

  9. 前端解决粘贴过来的东西不触发键盘事件@令狐张豪

    描述: 在做登录的时候输入正确校验时按钮高亮并可以触发事件,我们正常输入的时候没问题,但是直接粘贴过来的时候input监听不到. 解决: 换成oninput事件 //vue写法 <input t ...

最新文章

  1. java两个线程循环打印_java循环打印 多线程
  2. 火星上的甲烷从哪里来,科学家用算法给出了答案
  3. 智能循迹避障小车C语言程序编写思路,设计一个循迹避障一体的智能小车的资料和代码及电路图详细概述...
  4. Hdu 1384 Intervals
  5. wxWidgets:wxRichTextCtrl类用法
  6. 分布式事务与一致性算法Paxos amp; raft amp; zab
  7. button hover逐渐变色_两当水库界桩@产品长久不变色 - 两当安全防护
  8. C语言的关键字和详细介绍
  9. 千万条数据快速导入MySQL
  10. python表达式3 2 3的值为_Python3中的表达式运算符
  11. 我的世界java骷髅马_我的世界:骷髅马材质更新,老MC教你获得骷髅马技巧,萌新:真好...
  12. 嵌入式语音识别系统之电路设计原理
  13. SpringBoot常见面试题总结一
  14. 互联网创业的准备——行业与商业模式
  15. 从零开始SpringCloud Alibaba实战(48)——阿里开发手册泰山版学习笔记二 日期时间 集合处理 并发处理
  16. 编程作业(python)| 吴恩达 机器学习(6)支持向量机 SVM
  17. 微信公众号【黄小斜】和【Java技术江湖】
  18. 小程序开发平台有哪些?第三方小程序电商开发平台一览
  19. Python进阶之路 简单的棋盘游戏
  20. CANoe.DiVa操作指南-Pre-condition测试环境配置

热门文章

  1. 程序运行闪图界面以及传感器
  2. 暑期实习的总结感悟+深圳找房
  3. 易到用车获新轮6000万美元融资 携程和DCM领投
  4. 对创业者来说现在做小程序代理加盟晚不晚?
  5. 《月亮与六便士》-读书笔记
  6. 应用之星,为你开发的App保驾护航
  7. 用Python爬了3w条游戏评分数据,有多少是你玩过的?
  8. 2020全国海洋航行器设计与制作大赛回顾与总结
  9. Xfce4快捷键个性化配置(个人向)
  10. windows操作系统的自启动项