页面缩放比例的控制

项目场景:

页面缩小的一定比例,某些样式就出现问题,于是想办法控制浏览器缩放比例


解决方案:

解决方案:获取浏览器缩放比例,当缩放比例为50时,就重置校正还原
实现效果:一旦页面缩放到50%以下,就会还原到100%的状态

代码如下:

<template>
  <div id="app">1111111111111111</div>
</template>

<script>
export default {
  name: "App",
  data() {
    return {
    };
  },
  components: {},
  mounted() {
    window.addEventListener("resize", this.getInfo);  //监听窗口改变
  },
  methods: {
    // 获取浏览器的缩放比例
    getZoom() {
      var ratio = 0
      var screen = window.screen
      var ua = navigator.userAgent.toLowerCase();

      if (window.devicePixelRatio !== undefined) {
        ratio = window.devicePixelRatio;
      } else if (~ua.indexOf("msie")) {
        if (screen.deviceXDPI && screen.logicalXDPI) {
          ratio = screen.deviceXDPI / screen.logicalXDPI;
        }
      } else if (
        window.outerWidth !== undefined &&
        window.innerWidth !== undefined
      ) {
        ratio = window.outerWidth / window.innerWidth;
      }
      if (ratio) {
        ratio = Math.round(ratio * 100);
      }
      return (ratio/100).toFixed(2);
    },

    // 窗口缩放控制
    getInfo() {
      let resize = this.getZoom();
      if(resize*100 < 50){
        document.body.style.zoom= 1/resize //放大倍数,例如缩放的了25%,那么此时就会是1/0.25 =4,此时就是25的四倍状态也就是还原到了100%的状态,即校正
      }

     
    },
  },
  beforeDestroy(){
    window.removeEventListener("resize", this.getInfo)  //解除绑定    
  }
};
</script>

缺点:

1、兼容问题,低版本的ie和火狐不兼容zoom

2、效果问题:本质是更改页面缩放比,放大了页面,使视觉上感觉还原了,但是浏览器缩放比还是那么多,此时会出现两个问题:

  • 设置缩放比例后,再放大页面,就会出现实际页面的缩放与浏览器的缩放对不上,会以浏览器缩放的基础上再按照页面缩放比zoom缩放(大概效果就是,原尺寸,先按照浏览器的缩放比缩放,再在此基础上,按照zoom再次缩放的效果)
  • 刷新问题,刷新后页面缩放比zoom重置,此时页面的大小还是会按照浏览器原本的缩放比重绘
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
js等比例缩放页面图片大小 // JavaScript Document function handle_img(tagimg_name,tagimg_width,tagimg_height){ var img_object=new Image(); var get_imgs=document.getElementsByName(tagimg_name); for(var i=0 ; i<get_imgs.length ; i++){ img_object.src=get_imgs[i].src; //上传的图片宽高均在tagimg_width和tagimg_height以内。则原图片显示 if(img_object.width<=tagimg_width && img_object.height<=tagimg_height){ get_imgs[i].height=img_object.height; get_imgs[i].width=img_object.width; } //如果宽度超过了tagimg_width if(img_object.width>tagimg_width){ if(tagimg_width/img_object.width*img_object.height>tagimg_height){ var w_width=tagimg_width/img_object.width*img_object.height; get_imgs[i].width=(tagimg_height/w_width)*tagimg_width; get_imgs[i].height=tagimg_height; }else{ get_imgs[i].height=tagimg_width/img_object.width*img_object.height; get_imgs[i].width=tagimg_width; } } //如果高度超过了tagimg_height if(img_object.height>tagimg_height){ if(tagimg_height/img_object.height*img_object.width>tagimg_width){ var h_height=tagimg_height/img_object.height*img_object.width; get_imgs[i].height=(tagimg_width/h_height)*tagimg_height; get_imgs[i].width=tagimg_width; }else{ get_imgs[i].width=tagimg_height/img_object.height*img_object.width; get_imgs[i].height=tagimg_height; } } } } //handle_img(tagimg_name,tagimg_width,tagimg_height) 页面加载完毕后调用该函数即可 //第一个参数为 页面当中img标记的name值 //第二个参数为 将要设定预览图片的宽度 //第三个参数为 将要设定预览图片的高度

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值