父页面使用iframe嵌子页面时使子页面弹框适应父页面滚动像素

使用el-dialog的top属性
效果如下:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

当滚动条拖动过iframe之前的区域高度时,dialog的top值设置为滚动条像素值-区域高度的值
x=父页面高度=parent.document.body.offsetHeight
y=滚动条像素高度=parent.window.pageYOffset
b=子页面高度=document.body.offsetHeight=(这里等于1108)
a=A区域高度=x-b

即dialog的top属性设置为:(y-a>0)?(y-a+80):80
(感觉设置80更好看,因此都加了80)
为使子页面单独访问时dialog的显示也正常,再加一个逻辑
((y-a>0)&&(x-b>0))?(y-a+80):80

<el-dialog :visible.sync="dialogVisiable" width="400px" :top="topValue()">
        <div style="width: 300px; height: 300px">彈框</div>
      </el-dialog>
  methods: {
    show: function () {
      this.dialogVisiable = true;
    },
    topValue: function () {
      var x = parent.document.body.offsetHeight;
      var y = parent.window.pageYOffset;
      var b = 1108;
      var a = x - b;
      var t = (y - a > 0 && x - b > 0 ? y - a + 80 : 80) + "px";
      return t;
    },
  },
};
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值