本文介绍: 有个需求要让不同分辨率都适配到1080P的效果,以15.6寸1080P笔记本为例,页面缩放默认一般是125%,要显示真正的1080P一般是调整浏览器缩放80%(Edge),也有部分浏览器默认时125%则缩放到100%。那么能不能通过CSS实现?我看到主流的处理方法是:确实可以达到效果,但是当使用Echart、Element部分组件时,会出现鼠标定位偏移问题,我就不列举了,因为能查到这里一般是遇到了问题的。那么有没有平替方案呢?当然有:我们通过scale实现的效果和zoom几乎一模一样,同时避免了
有个需求要让不同分辨率都适配到1080P的效果,以15.6寸1080P笔记本为例,页面缩放默认一般是125%,要显示真正的1080P一般是调整浏览器缩放80%(Edge),也有部分浏览器默认时125%则缩放到100%。
body {
zoom: 0.8;
}
确实可以实现缩放效果,但是当页面中存在Echarts组件时,Echarts组件部分会出现鼠标定位偏移问题,一般有以下两种处理方案:
body {
transform: scale(0.8);
transform-origin: 0px 0px;
width: 125%;
height: 125%;
}
// body自动缩放
function bodySize () {
var size = window.screen.height / 1080;
var size2 = 100 / size + '%';
$('body').css('transform', 'scale(' + size + ')');
$('body').css('transform-origin', '0 0');
$('body').css('width', size2);
$('body').css('height', size2);
}
由于Echarts组件都是通过canvas渲染的,所以可以直接对canvas进行处理。如果页面存在其他canvas无需缩放,也可改用其他选择器。
body {
zoom: 0.8;
}
canvas {
zoom: 1.25;
transform: scale(0.8);
transform-origin: 0px 0px;
}
// body自动缩放
function bodySize () {
var size = window.screen.height / 1080;
$('body').css('zoom', size);
// 处理缩放导致canvas定位异常
document.styleSheets[document.styleSheets.length - 1].insertRule('canvas {zoom: ' + 1 / size + '}');
document.styleSheets[document.styleSheets.length - 1].insertRule('canvas {transform: scale(' + size + ')}');
document.styleSheets[document.styleSheets.length - 1].insertRule('canvas {transform-origin: 0 0}');
}
原文地址:https://blog.csdn.net/LP_Reed/article/details/128202856
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_22950.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。