使用iframe嵌入某个h5页面时 等比放大缩小原h5页面

624 阅读1分钟

使用iframe嵌入某个h5页面时 等比放大缩小原h5页面 这个方式只使用于pc端 移动端实现方式另行实现

<div class="" ref="chart-iframe">
  <iframe :src="Url"
          frameborder="0"
          :style="Style"
          :width="W"
          :height="H"
          ref="chart-content-iframe">
  </iframe>
</div>
data() {
  return {
   W: 1080,
  H: 1920,
    Style: {
      backgroundColor: 'transparent',
      transform: "scale(0.35)",
      position: "absolute",
      top: `30px`,
      "transform-origin": "top left",
    },
    Interval: null,
    Url: "https:12345678?ver=" + Number(new Date()),//加new Date()是为了定时刷新页面
  }
}
setScaleStyle() {
  let width = this.$refs["chart-iframe"].clientWidth;
  let height = this.$refs["chart-iframe"].clientHeight;
  // 说明 目前容器宽度较大
  let min = Math.min(width / this.W, height / this.H);
  min = parseFloat(min.toFixed(2)) - 0.01;
  let marginTop = (height - this.H * min) / 2;
  if (marginTop < 0) marginTop = 2;
  let marginLeft = (width - this.tW * min) / 2 - 3;
  let o = {
    backgroundColor: 'transparent',
    transform: `scale(${min})`,
    position: "absolute",
    top: `${marginTop}px`,
    left: `${marginLeft}px`,
    "transform-origin": "top left",
    "border-radius": "18px",
  };
  this.$set(this, "Style", o);
},