根据浏览器窗口等比缩放页面

实现思路

  • 通过css的transform scale属性对页面body元素进行缩放
  • 缩放比例为实际窗口尺寸/设置的body像素尺寸,选择(窗口宽/body宽)和(窗口高/body高)中较小的一个
  • body缩放之后,位置相对于窗口出现偏移,许需要调整body的margin

代码实现

<!DOCTYPE html>
<html lang="en">
<head><meta charset="utf-8"/><title>等比缩放</title><style type="text/css">html {background: #757575}body {margin: 0;background: #a8a8a8;}</style>
</head>
<body id="body">
<div id="container"><div style="font-size: 40px">40px文字</div><div style="font-size: 20px">20px文字</div><div style="font-size: 20px">拖动浏览器窗口大小,查看缩放效果</div><button>按钮</button>
</div>
<script type="text/javascript">// body宽高let cw = 1920,ch = 1080let body = document.getElementById('body')body.style.width = `${cw}px`body.style.height = `${ch}px`// 对body进行缩放function windowResize() {// 窗口宽高let w = window.innerWidth, h = window.innerHeight// 缩放比例let r = w / cw < h / ch ? w / cw : h / chbody.style.transform = `scale( ${r})`// 因为scale是以body的原中心点为基准进行缩放,所以缩放之后需要调整外边距,使其位于窗口的中心位置body.style.marginLeft = (-(cw - r * cw) / 2 + (w - r * cw) / 2) + 'px'body.style.marginTop = (-(ch - r * ch) / 2 + (h - r * ch) / 2) + 'px'body.style.marginBottom = (-(h>ch?h:ch - r * ch)) + 'px'body.style.marginRight = (-(w>cw?w:cw - r * cw)) + 'px'}windowResize()// 监听窗口尺寸变化window.addEventListener('resize', windowResize);
</script>
</body>
</html>

html 等比缩放页面相关推荐

  1. [html] 移动端如何禁止用户手动缩放页面?

    [html] 移动端如何禁止用户手动缩放页面? <meta name="viewport" content="width=device-width,initial- ...

  2. ios10中禁止Safari浏览器用户缩放页面

    在ios10前我们能通过设置meta来禁止用户缩放页面: <meta content="width=device-width, initial-scale=1.0, maximum-s ...

  3. js自动缩放页面自适应屏幕分辨率

    js自动缩放页面自适应屏幕分辨率 欢迎使用Markdown编辑器 欢迎使用Markdown编辑器 当开发前端页面在分辨率1920的情况下,需要切换到小屏,有种方法是可以对屏幕比例进行缩放,通过css3 ...

  4. js整体缩小网页_js实现整体缩放页面适配移动端

    大家在适配页面的Web端和移动端时候,如果不需要那么麻烦,就可以使用js进行整体缩放,只需要引入一个js,改动htmll头部代码即可 切记: 1.该 JS 应在 head 中尽可能早的引入,减少重绘. ...

  5. 【问题解决】关于AltiumDesigner 10(AD10)原理图中拖动和缩放页面出现卡顿问题

    问题: 在AD20中建立的原理图,后面用AD10打开,出现原理图中拖动和缩放页面卡顿问题. 原因: 在AD20中使用了一个文本框注释,可能AD10不兼容 解决: 删除AD20中添加的文本框,重新在AD ...

  6. PC及移动端禁止用户缩放页面的实现方式

    对于移动端,我们可以直接这样限制: <meta name="viewport" content="width=device-width,initial-scale= ...

  7. 移动端禁止用户缩放页面大小尺寸

    通常我们关闭移动端页面缩放是通过标签: <meta name="viewport" content="width=375,initial-scale=1,user- ...

  8. JS自动缩放页面图片

    注:该方法不适用于图片较多的页面! /*** 缩略图** @param bool isScaling 是否缩放* @param int width 宽度* @param int height 高度* ...

  9. ios10中禁止用户缩放页面

    ios10 通过js进行阻止用户缩放 window.οnlοad=function () { document.addEventListener('touchstart',function (even ...

最新文章

  1. 是时候开始使用JavaScript严格模式了怎样启用javascri
  2. 服务器负载暴涨以后...
  3. runtime运行时编程一些相关知识
  4. 装鸡蛋的鞋子java代码_Java实现 LeetCode 887 鸡蛋掉落(动态规划,谷歌面试题,蓝桥杯真题)...
  5. 【项目管理】工件清单说明
  6. java joda_java-Jodatime的开始时间和结束时间
  7. autojs 云控_autojs websocket 核心示例代码,云控技术
  8. Vuejs模拟Ajax请求接口(天气预报API)跨域问题 - 案例篇
  9. 3.12 - Tuples in Python
  10. 本地apk安装是什么意思_Sony电视安装第三方播放器
  11. DOM之innerHTML属性
  12. 小米华为鸿蒙,华为鸿蒙比小米MIUI快,老外上手出结果
  13. 查看linux有多少线程总数,linux线程总数
  14. 涉案千万,抓获170人,从业者多为90后,广州一公司被一锅端了!
  15. 计算机乘法函数公式word,Word表格怎么用公式乘法
  16. 用HTML+CSS做一个漂亮简单大学生校园班级网页
  17. 2019年浙江大学计算机考研复试线,2019年浙江大学考研复试分数线已经公布
  18. 一般人我不告诉的bug
  19. Angular入门学习笔记
  20. Harbor再次安装与使用

热门文章

  1. 【每日早报】2019/11/28
  2. OFD怎么转换成PDF? OFD文件转换成Word方法推荐
  3. 记录电脑蓝屏错误0x00000019怎么解决
  4. 190817——肖申克的救赎
  5. viber免费打电话,发短信。五个月用户超千万:简单、免费爆炸式传播
  6. 使用BeautifulSoup解析网页时漏掉了元素
  7. 安装Vue-CIL步骤
  8. 一款功能齐全的开源网盘系统
  9. 微信银行卡如何解除绑定?图文教程,快速解除
  10. webView 加载网页 删除网页元素