可视化数据统计大屏的屏幕适配

       关于数据大屏的屏幕适配,有很多种方法,比如 vw 、rem、百分比、媒体查询......等,这些方法有一个不足就是太麻烦。但是css3中新增的transform,让我们有了一个很好的处理思路:利用缩放来达到屏幕适配,这样有一个好处就是我们不用在对设计稿上的尺寸进行计算或单位转换。

一.代码详解

获取windowde高度,并根据需求设置默认的尺寸,

var clientH = $(window).height();
$('body').css({
   width: 1920,
    height: 1080,
    overflow:'hidden',
    margin:0
});

计算window 和 body 之间高度的比值,设置缩放的因数;

var bi = clientH / $('body').height();
$('body').css('transform','scale('+bi+')');

非全屏模式下因为 —显示器任务栏的存在—和 —浏览器中地址栏—的存在,我们的body实际上并没有1080,那么此时我们的宽并不能达到1920。

以上这种效果并不是我们想要的,所以为了能看起来正常一点,我们可以给这个body做个水平居中。

var marginLeft = (parseFloat(document.documentElement.clientWidth) - parseFloat($('body').css('width'))*bi)/2;
$('body').css('margin-left',marginLeft+'px');

这样便能达到我们的目的了。
在这里插入图片描述

二.完整代码

注意:为了保证窗口高度发生变化的时候,及时使用屏幕,我们需要做个监听来触发该函数。

    resizePage() {
        var clientH = $(window).height();
        $('body').css({
            width: 1920,
            height: 1080,
            overflow:'hidden',
            margin:0
        });
        var bi = clientH/$('body').height();
        $('body').css('transform','scale('+bi+')');
        var marginLeft =(parseFloat(document.documentElement.clientWidth) - parseFloat($('body').css('width'))*bi) / 2;
        $('body').css('margin-left',marginLeft+'px');
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值