使用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;
},
},
};