【实战】H5 页面同时适配 PC 移动端 —— 旋转横屏

news2024/12/27 14:46:16

文章目录

  • 一、场景
  • 二、方案
  • 三、书单推荐
    • 01 《深入实践Kotlin元编程》
    • 02 《Spring Boot学习指南》
    • 03 《Kotlin编程实战》


一、场景

一个做数据监控的单页面,页面主要内容是一个整体必须是宽屏才能正常展示,这时就不能用传统的适配方案了,需要页面旋转为横屏展示
本场景中:

  • 尺寸相对单位使用 vh(视高的1%)
  • 展示内容类似脑图,根在上(数据源),分四层,每层节点较多所以只能横屏展示
  • 未使用第三库(无法直接展示为根左向右数据分发)

二、方案

相对原PC页,重构过程中主页面只增加判断逻辑(不直接判断是否手机端,只判断可见窗口宽高比):

const isPhone = document.body.clientWidth < document.body.clientHeight

样式文件(css-in-js)分两种:

  • 布局:layout.js(使用了@emotion/react)
  • 样式:style.js(正常 js-obj)

其中 layout.js 分开两种:

  • layout.js(保持原状)
  • layoutPhone.js(直接 vh 改 vw,且最外层容器旋转 transform:rotate(90deg))

注意:由于被旋转元素的基点默认为自身的中心点。因此需要设置一下它的旋转中心为左上角(transform-origin: 0% 0%;),这样页面被“转出了屏幕”停留在屏幕的左侧,最后一步只需要将它往右平移一个屏幕的宽度就刚刚好(left:100vw),如下:

export const Container = styled.div`
  ...
  transform:rotate(90deg);
  transform-origin: 0% 0%;
  position: absolute;
  left: 100vw;
`

style.js 使用变量 $h 保存垂直预览页面时,视图高度代表设备的高或宽

  • PC端:$h = ‘vh’
  • 手机端:$h = ‘vw’

其他情况自行兼容处理。。。

over


三、书单推荐

01 《深入实践Kotlin元编程》

在这里插入图片描述

《深入实践 K o t l i n 元编程》 《深入实践Kotlin元编程》 《深入实践Kotlin元编程》
作者:霍丙乾 作者:霍丙乾 作者:霍丙乾

推荐语:猿辅导资深Kotlin专家、Google开发者专家撰写,Kotlin中文站负责人等多位专家推荐,降低元编程学习门槛。

这是一本从基础知识、设计思想、技术方案、应用方法、实践技巧5个维度系统讲解Kotlin元编程,并以此大幅提升Kotlin工程师开发水平、研发效率和开发体验的著作。

作者是Kotlin领域的资深专家和布道者,本书源于他对Kotlin编译器源码的反复研读和大量的工程实践,不仅细致讲解了反射、程序静态分析、 Java注解处理器、Kotlin符号处理器、Kotlin编译器插件、元程序的开发和调试等核心元编程技术,而且详细剖析了Jetpack Compose的编译器插件和IntelliJ 插件、AtomicFU 的 JVM 字节码和JavaScript代码的生成逻辑。

02 《Spring Boot学习指南》

在这里插入图片描述

《 S p r i n g B o o t 学习指南》 《Spring Boot学习指南》 SpringBoot学习指南》
构建云原生 J a v a 和 K o t l i n 应用程序 构建云原生Java和Kotlin应用程序 构建云原生JavaKotlin应用程序
作者: [ 美 ] 马克 ⋅ 赫克勒 ( M a r k H e c k l e r ) 作者:[美]马克·赫克勒(Mark Heckler) 作者:[]马克赫克勒(MarkHeckler)

推荐语:行业专家撰写,涵盖开发Spring Boot 应用程序的诸多复杂细节,代码示例相互关联且易于理解。

本书将带你理解Spring Boot的架构和方法,包括调试、测试和部署等主题。如果你想使用Spring Boot来快速、有效地开发云原生Java或Kotlin应用程序(使用响应式编程、构建API以及创建各种数据库访问),那么本书就是为你准备的。

03 《Kotlin编程实战》

在这里插入图片描述

《 K o t l i n 编程实战》 《Kotlin编程实战》 Kotlin编程实战》
创建优雅、富于表现力和高性能的 J V M 与 A n d r o i d 应用程序 创建优雅、富于表现力和高性能的JVM与Android应用程序 创建优雅、富于表现力和高性能的JVMAndroid应用程序
作者: [ 美 ] 文卡特 ⋅ 苏布拉马尼亚姆 作者:[美]文卡特·苏布拉马尼亚姆 作者:[]文卡特苏布拉马尼亚姆

推荐语:Jolt Productivity获奖作者编写,Kotlin首席设计师Andrey Breslav作序推荐,助你开启通往Kotlin世界的大门。

阅读本书,不仅可以通过易于理解的示例学习使用Kotlin语言的许多特性,还可以学习编写易于维护、高性能的JVM和Android应用程序,创建DSL和异步编程等。

本书会带你使用你喜欢的IDE并利用大量示例和练习来提高你的Kotlin技能。你将学习创建独立的小程序并以脚本的形式运行,创建类型安全的代码,然后将这些知识进一步拓展,以创建易于扩展的、完全面向对象的、函数式风格的代码。还将学习如何在不影响效率或性能的情况下优雅地编程,以及如何使用元编程来创建高度富有表现力的代码,并创建利用语言流畅性优势的内部DSL。与此同时,你也会学习协程、异步编程、自动化测试的相关知识,并学习在企业级应用中混合使用Kotlin与Java。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1012373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DC电源模块单路、双路输出的不同应用场景

BOSHIDA DC电源模块单路、双路输出的不同应用场景 DC电源模块是一种常见的供电设备&#xff0c;通常用于将市电转换为稳定的直流电源&#xff0c;以供电给各种电子设备。DC电源模块的输出方式分为单路和双路两种&#xff0c;下面将分别介绍它们的不同应用场景。 一、单路输出…

wx.getPrivacySetting 小程序隐私保护指引的使用(复制粘贴即用)

创建privacyPopup 组件 privacyPopup.js Component({properties: {},data: {wxPrivacyName: ,showAgreement: false},lifetimes: {attached() {this.init();}},methods: {async init() {if (isLogin()) {const userPrivacy await this.getPrivacy();this.setData({wxPrivacy…

vue项目生产环境隐藏暴露的代码_源码

// 如果你不需要生产环境的 source map&#xff0c;可以将其设置为 false 以加速生产环境构建。 productionSourceMap: false,

思维导图,掌握思维的艺术!免费的Mindomo Desktop for Mac等你来体验

您是否曾为了整理复杂的思绪而苦恼&#xff1f;或许您需要一款强大而直观的思维导图软件来帮助您理清思路。Mindomo Desktop for Mac是一款免费的思维导图软件&#xff0c;它将为您带来高效的思考和组织工具。 Mindomo Desktop for Mac的界面简洁直观&#xff0c;操作简单易上…

留资机器人助你有效提高营销成功率

我们都知道&#xff0c;当客户产生留资行为&#xff0c;就要抓住机会&#xff0c;让工作人员及时地对客户进行回访&#xff0c;然后将留资线索跟踪、维系。而如何准确有效地提高客户保留率和转化率是营销成功的关键。所以对于企业来说&#xff0c;留资机器人正是引导客户留资&a…

自动化测试工程师简历(吐血整理)附模板

张三&#xff08;软件测试&#xff09; 联系电话&#xff1a;175XXXXXXXXX 电子邮件&#xff1a;XXXqq.com 学 历&#xff1a;本 科 专 业&#xff1a;计算机科学与技术 毕业院校&#xff1a;XXXXXX …

Redis缓存高可用集群

1、Redis集群方案比较 哨兵模式 在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态&#xff0c;如果master节点异常&#xff0c;则会做主从切换&#xff0c;将某一台slave作为master&#xff0c;哨兵的配置略微复杂&#xff0c;并且性能和高可…

Postman应用——接口请求(Get和Post请求)

文章目录 新增请求接口请求Get接口请求Post 这里只讲用的比较多的Get和Post请求方式&#xff0c;也可以遵循restful api接口规范&#xff0c;使用其他请求方式。 GET&#xff08;SELECT&#xff09;&#xff1a;从服务器取出资源&#xff08;一项或多项&#xff09;POST&#…

建筑模板的成本如何控制?

建筑模板是在施工过程中用于支撑混凝土浇筑的临时结构&#xff0c;对于建筑项目而言&#xff0c;模板的成本控制是一个重要的方面。有效地控制模板成本可以帮助降低整体工程成本&#xff0c;并提高项目的经济效益。本文将从不同网站链接的内容中总结出一些关键要点&#xff0c;…

2023华为OD统一考试(B卷)题库清单(按算法分类),如果你时间紧迫,就按这个刷

目录 专栏导读华为OD机试算法题太多了&#xff0c;知识点繁杂&#xff0c;如何刷题更有效率呢&#xff1f; 一、逻辑分析二、数据结构1、线性表① 数组② 双指针 2、map与list3、优先队列4、滑动窗口5、二叉树6、并查集7、栈 三、算法1、基础算法① 贪心算法② 二分查找③ 分治…

HTML5+CSS3小实例:纯CSS实现彩虹倒映水面的唯美背景

实例:纯CSS实现彩虹倒映水面的唯美背景 技术栈:HTML+CSS 效果: 源码: 【html】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" …

JavaScript的事件监听

一、认识事件处理 1.认识事件 Web页面需要经常和用户之间进行交互&#xff0c;而交互的过程中我们可能想要捕捉这个交互的过程&#xff1a; 比如用户点击了某个按钮、用户在输入框里面输入了某个文本、用户鼠标经过了某个位置&#xff1b;浏览器需要搭建一条JavaScript代码和…

Spark on YARN 部署搭建详细图文教程

目录 一、引言 二、SparkOnYarn 本质 2.1 Spark On Yarn 的本质? 2.2 Spark On Yarn 需要啥? 三、配置 spark on yarn 环境 3.1 spark-env.sh 3.2 连接到 YARN 中 3.2.1 bin/pyspark 3.2.2 bin/spark-shell 3.2.3 bin/spark-submit (PI) 四、部署模式 DeployMod…

首发悬赏算命测算源码

可以用二维码收款 可以直接拿来运营吸金&#xff01; 用户可以通过发布悬赏赏金算命&#xff0c;也可以通过升级发布测算任务来吸金 安装教程&#xff1a; 测试环境&#xff1a;php5.6apache2.4mysq5.6 安装&#xff1a; 1.源码解压到根目录 修改 \Application\Common\Co…

学习Kotlin看哪些书?【赠书活动|第八期《深入实践Kotlin元编程》】

文章目录 图书简介01 《深入实践Kotlin元编程》02 《Spring Boot学习指南》03 《Kotlin编程实战》 抽奖方式 与Java一样&#xff0c;Kotlin也是用于Android应用程序开发的编程语言&#xff0c;是Android官方支持的第二种编程语言。 2016年Kotlin正式发布&#xff0c;在Android“…

【Flowable】任务监听器(五)

前言 之前有需要使用到Flowable&#xff0c;鉴于网上的资料不是很多也不是很全也是捣鼓了半天&#xff0c;因此争取能在这里简单分享一下经验&#xff0c;帮助有需要的朋友&#xff0c;也非常欢迎大家指出不足的地方。 一、监听器 在Flowable中&#xff0c;我们可以使用监听…

怎样下载和安装HBuilder软件?【附HBuilder快捷键】

HBuilder是一款深度集成Eelipse的IDE编辑器&#xff0c;但其主要集中在Web前端的开发&#xff0c;不能进行Java等后台开发。HBuilder提供了对JavaScrijpt、jQuery、HTML5、MUI等语法的提示功能&#xff0c;同时包含很多快捷键&#xff0c;让前端开发更加便捷。 访问HBuilder官…

全量数据采集:不同网站的方法与挑战

简介 在当今数字化时代中&#xff0c;有数据就能方便我们做出很多决策。数据的获取与分析已经成为学术研究、商业分析、战略决策以及个人好奇心的关键驱动力。本文将分享不同网站的全量数据采集方法&#xff0c;以及在这一过程中可能会遇到的挑战。 部分全量采集方法 1. 撞店…

1500*B. The Walkway(贪心规律)

解析&#xff1a; 把每个区间段分成左闭右开区间&#xff0c;我们可以观察到&#xff0c;每个区间的饼干数量为 ( r - l ) / d 上取整。 所以先计算不删除某个点的饼干总和init&#xff0c;然后遍历所有点&#xff0c;将这个点删除。所以删除某个点后剩余数量为&#xff1a; 找…

WOODWARD 5466-258 输入快速实施高效的闭环控制

WOODWARD 5466-258 输入快速实施高效的闭环控制 Malvern Instruments 增强了 Link II 软件包&#xff0c;可将多个分析仪集成到一个自动化控制平台中。最新的开发将 Malvern Link II 的优势扩展到该公司的 Mastersizer 和 Zetasizer 分析仪系列&#xff0c;简化了它们在过…