位置: IT常识 - 正文

vue项目网页自适应,等比例放大缩小(vue 网页)

编辑:rootadmin
vue项目网页自适应,等比例放大缩小

推荐整理分享vue项目网页自适应,等比例放大缩小(vue 网页),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue网页设计,vue 自适应网站ui框架,vue 自适应网站ui框架,vue页面自适应屏幕大小,vue 自适应网站ui框架,vue页面自适应屏幕大小,vue 自适应网站ui框架,vue页面自适应咋写,内容如对您有帮助,希望把文章链接给更多的朋友!

        同样是,虽然标题写的vue项目适用,但其它前端框架应该也可以。其它框架我没什么经验,可以参考着看看,应该适用。

        本文章不涉及第三方插件,纯js。

        自适应这个问题,老早以前就有一个解决方式,css中的%,比如height:100%; width:100%;给主容器赋予该样式,那主容器就可以自适应屏幕,但里面的内容不会,如果要里面的内容也自适应,那里面也得写%,但问题随之而来,font-size呢?

        %虽然现在依然有用,但现在的项目很多都有设计稿,比如我接触比较多的数据大屏,这类网页,长宽比是固定的,%无法解决字体自适应的问题。熟悉rem的,可以用rem,这个单位类似于微信小程序的rpx,算是自适应属性,但我没用过,不讲,今天的主角不是它。

        接下来就是正文了。在长宽比固定的情况下,网页自适应,其实就是将网页等比例放大或者缩小。我们提出一个 设想,在网页初始化的时候,正确地放大或者缩小网页,来适应屏幕;并在浏览器显示区域发生变化时,修改放大或者缩小的比例,使网页始终能够适应屏幕。

        放大和缩小,有什么现有的方法或者样式吗?有, css中的 zoom 以及 scale(),浅讲一下两个样式的不同之处:

zoom:

        1. 使用该样式的标签会等比例缩放。zoom:0.5 (缩放50%),zoom:2(放大两倍)。

        2. 缩放的基准点在原容器的左上角(应该没记错,想证实的可以自己试试),意思就是,使用zoom放大缩小,原容器的左上角作为原点不动,然后边长放大缩小。在数学里的话,差不多就是原点固定,然后在第四象限放大缩小。

        3. 火狐firefox不支持。

scale():

        1. 使用该样式的标签也会放大缩小,不过它可以让长宽独立放大缩小。transform: scale(2, 2); (放大两倍),transform: scale(0.5, 2); (水平方向缩放50%,垂直方向放大2倍)。

vue项目网页自适应,等比例放大缩小(vue 网页)

        2. 缩放的基准点在原容器的中心,意思大概是以原容器中心为原点,然后向一二三四象限扩张或收缩。

        3. 火狐firefox支持。

        对比下来,scale()优势明显,我们就用scale(),它是css3的属性,我们不考虑什么兼容问题,现在还不支持css3的浏览器,我都不稀罕用。如果非要用zoom,也可以,因为代码方面差不多。

        既然上面的 设想 可以有方法实现,现在就剩最后一个问题了,缩放多少呢?

        场景假设:我们以设计稿 1920px*1080px为例,但是现在我们的屏幕没有1920*1080,或者浏览器没有最大化,就占了屏幕的一半,这时候很可能浏览器长宽比连16:9都不是,我们可以宽度做基准,高度来适应宽度(高度为基准,宽度适应高度也可以,看场景和具体需要)。设计稿的宽度是1920px,而浏览器可视宽度是 window.innerWidth,我们需要在浏览器可视范围内自适应缩放容器,也就是在 window.innerWidth 的宽度中来显示 1920px的东西,那我们的 缩放比例 就是 window.innerWidth / 1920。

        所有问题都解决了,现在就来实现我们的设想。下面我以scale()为例了。

        在网页初始化的时候,正确地放大或者缩小网页,来适应屏幕。翻译:mounted() 的时候scale()主容器。

mounted() { var browerWidth = window.innerWidth; //浏览器可视宽度 var baseWidth = 1920; //设计稿宽度 var zoomValue = browerWidth / baseWidth; //缩放比例计算 document.getElementById("mainContainer").style.transform = "scale(" + zoomValue + "," + zoomValue + ")"; //mainContainer为主容器id}

        在浏览器显示区域发生变化时,修改放大或者缩小的比例,使网页始终能够适应屏幕。翻译:窗口尺寸变化时,重新计算缩放比例,并重新scale()主容器。

window.onresize = function () { var browerWidth = window.innerWidth; var baseWidth = 1920; var zoomValue = browerWidth / baseWidth; document.getElementById("mainContainer").style.transform = "scale(" + zoomValue + "," + zoomValue + ")"; }

        整合一下:

mounted() { var browerWidth = window.innerWidth; //浏览器可视宽度 var baseWidth = 1920; //设计稿宽度 var zoomValue = browerWidth / baseWidth; //缩放比例计算 document.getElementById("mainContainer").style.transform = "scale(" + zoomValue + "," + zoomValue + ")"; //mainContainer为主容器id window.onresize = function () { //窗口尺寸变化时,重新计算和缩放 browerWidth = window.innerWidth; zoomValue = browerWidth / baseWidth; document.getElementById("mainContainer").style.transform = "scale(" + zoomValue + "," + zoomValue + ")"; }}

        到这里,自适应的内容已经结束,但还不完美。如果显示区域的比例不是16:9。两种情况:

        1. 宽度更大,高度为了适应宽度,会导致垂直方向显示不全,需要上下滚动显示。这个就改成以高度为基准。上面的 场景假设 有提到。

        2. 高度更大,或者使用了1的解决方法。因为显示区域不是16:9,而设计稿是16:9,总会有部分区域不属于主容器,那这部分区域就是白色的很难看,像这样:

         这个问题其实就很简单了,我们给主容器再套一个父容器,父容器来设置背景色填充留白。父容器的样式这么写(自适应窗口,并让子元素水平垂直居中,留白部分用背景色填充):

#app { width: 100vw; height: 100vh; background: rgb(24, 25, 35); display: flex; align-items: center; justify-content: center;}

最终效果图:

 

本文链接地址:https://www.jiuchutong.com/zhishi/287152.html 转载请保留说明!

上一篇:postman下载与汉化(附直接下载链接)(postman汉化包)

下一篇:[遇到的问题-已解决]Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.1(遇到的问题及解决方法)

  • 苹果13怎么设置骚扰电话拦截(苹果13怎么设置来电拦截)

    苹果13怎么设置骚扰电话拦截(苹果13怎么设置来电拦截)

  • qq空间小秘密下架了吗(2021qq空间小秘密入口在哪)

    qq空间小秘密下架了吗(2021qq空间小秘密入口在哪)

  • word怎么新建空白页(word怎么新建空白表格)

    word怎么新建空白页(word怎么新建空白表格)

  • win10错误代码0xc000000e(win10错误代码0xc0000001进不了安全模式)

    win10错误代码0xc000000e(win10错误代码0xc0000001进不了安全模式)

  • 钉钉如何设置夜间模式(钉钉如何设置夜间提醒)

    钉钉如何设置夜间模式(钉钉如何设置夜间提醒)

  • 抖音里显示有共同联系人是什么意思

    抖音里显示有共同联系人是什么意思

  • 没插耳机显示耳机模式怎么办(没插耳机显示耳机图标)

    没插耳机显示耳机模式怎么办(没插耳机显示耳机图标)

  • 微信里输入什么会掉东西(微信里输入什么代码可以玩游戏)

    微信里输入什么会掉东西(微信里输入什么代码可以玩游戏)

  • qq加群失败什么意思(qq加群不成功)

    qq加群失败什么意思(qq加群不成功)

  • 快手消息怎么不显示红点(快手消息怎么不显示别人赞)

    快手消息怎么不显示红点(快手消息怎么不显示别人赞)

  • 微信发出的图片怎么销毁对方看不到(微信发出的图片如何让他失效打不开)

    微信发出的图片怎么销毁对方看不到(微信发出的图片如何让他失效打不开)

  • 机械键盘和机械手感键盘的区别(机械键盘和机械手感键盘哪个好用)

    机械键盘和机械手感键盘的区别(机械键盘和机械手感键盘哪个好用)

  • 什么叫页眉和页脚(什么叫页眉和页尾的区别)

    什么叫页眉和页脚(什么叫页眉和页尾的区别)

  • 打开运行窗口的快捷键(打开运行窗口的快捷键win7)

    打开运行窗口的快捷键(打开运行窗口的快捷键win7)

  • 手机左上角出现hd是什么意思(手机左上角出现的图标怎样消除掉?)

    手机左上角出现hd是什么意思(手机左上角出现的图标怎样消除掉?)

  • 小米6x支不支持qc3.0

    小米6x支不支持qc3.0

  • 抖音长腿特效详细位置(2021抖音视频长腿特效)

    抖音长腿特效详细位置(2021抖音视频长腿特效)

  • zip文件手机怎么打开(zip文件手机怎么下载)

    zip文件手机怎么打开(zip文件手机怎么下载)

  • 蝉是一首什么诗(蝉是一首什么诗从哪三个方面写出了蝉的特点)

    蝉是一首什么诗(蝉是一首什么诗从哪三个方面写出了蝉的特点)

  • 米家多功能网关怎么用(米家多功能网关电源插座小夜灯)

    米家多功能网关怎么用(米家多功能网关电源插座小夜灯)

  • 探探不绑定手机可以吗(探探不绑定手机号会有影响吗?)

    探探不绑定手机可以吗(探探不绑定手机号会有影响吗?)

  • 金立m7故事锁屏怎么永久关闭(金立m6怎么取消故事锁屏)

    金立m7故事锁屏怎么永久关闭(金立m6怎么取消故事锁屏)

  • iphonexr定时开机设置(iphonexr定时开关机)

    iphonexr定时开机设置(iphonexr定时开关机)

  • 高德地图突然导航不了怎么办(高德地图突然导航不动了)

    高德地图突然导航不了怎么办(高德地图突然导航不动了)

  • 微信屏蔽消息怎么恢复(微信屏蔽消息怎么不显示)

    微信屏蔽消息怎么恢复(微信屏蔽消息怎么不显示)

  • qq音乐歌词怎么设置成两行(qq音乐歌词怎么显示在桌面)

    qq音乐歌词怎么设置成两行(qq音乐歌词怎么显示在桌面)

  • 华为mate20pro和x区别

    华为mate20pro和x区别

  • sm卡是什么(simgsm分别是什么卡)

    sm卡是什么(simgsm分别是什么卡)

  • 股权转让如何缴纳增值税
  • 无形资产摊销年限可以变更吗
  • 工资绩效被扣除怎么办
  • 收到发票怎么写收据
  • 已启动申报比对异常申报,可以作废嘛清卡吗
  • 增值税减免所得税填在哪一栏
  • 其他应收和其他应付怎么调账
  • 累计赡养老人专项扣除6000
  • 产业扶持资金管理办法
  • 管理费抵扣如何计算
  • 工厂报废的产品价格有规定吗
  • 公司单独买医保
  • 购买户外用品的app
  • 二甲醚增值税税率9%
  • 手撕发票流程
  • 财务部门固定资产修理费计入什么科目
  • 收到免税苗木发票怎么做账
  • 发票开出多久可以作废
  • 退休职工费用哪里列支
  • 打方向咯噔一声已解决
  • 戴尔笔记本电脑哪款性价比最高
  • 出纳交接工作注意
  • 小企业的场地租金怎么算
  • PHP:stream_set_blocking()的用法_Stream函数
  • 本月未抵扣完的进项税是否转出
  • 个人所得税扣缴申报啥意思
  • 原材料按实际成本核算的会计处理
  • 付临时工资怎么入账
  • 基础会计供应过程的核算内容
  • 准备金要求定义
  • 软件和集成电路杂志官网
  • 经营特许权
  • vue显示pdf
  • 固定资产为什么提折旧,有何实际意义
  • filezilla使用手册
  • ps怎么把皮肤变红润
  • redis提供了对值进行运算的命令
  • 月末制造费用转入生产成本,因此期末账户一定无余额吗?
  • 公司租房电费怎么算
  • 外购应税消费品的纳税人是谁
  • 企业所得税汇算清缴会计分录
  • 租赁合同的印花税怎么交
  • sqlserver重复数据
  • 赠送给客户的商品怎么入账
  • 工程施工的主要经济指标包括哪些
  • 国际货运代理免增值税
  • 用友T3如何取消审核人和制单人不能为同一
  • 营业税金及附加包括哪些
  • 进口货物会计处理举例
  • 期末调汇汇兑损益科目
  • 发票打印机多少钱一套
  • 未确认融资费用怎么算
  • 小规模纳税人怎么算税
  • 财务费用包括哪几项
  • mysql osc
  • hyper怎么用
  • ubuntu netbook
  • 苹果Mac系统怎么装
  • win10 电脑
  • 如何用mac制作ppt
  • linux更新配置
  • python模拟reversed功能
  • 举例讲解水生花卉栽培管理
  • javascript数据结构与算法第三版
  • wind安装
  • cmd命令如何进入d盘
  • python djang
  • unity3D游戏开发
  • Jqgrid之强大的表格插件应用
  • socket python
  • 解决js请求服务问题
  • 老司机指的是
  • 治理体系治理能力十九届四中
  • 上海附加税税率2023
  • 契税含不含精装修
  • 光伏电站电力监控系统
  • 不想订亲
  • 深圳城管局 局长
  • 开票系统税控盘在哪里
  • 举报信如何投递
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设