遮盖显示父子页面

在FF中 iframe显示还有问题 IE6中测试可以

1.parent.aspx

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>

<script src="js/coverlayer.js" type="text/javascript"></script>

</head>
<body>
<form id="form1" runat="server">
<div>
<h3>Parent.aspx</h3>
<input style="background-color" id="txtParent" type="text" />
<input id="Button1" type="button" value="select" onclick="createCoverLayer()" />


</div>
</form>
</body>
</html>


2.child.aspx

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<script src="js/coverlayer.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<h3>Child.aspx</h3>
<input id="txtChild" type="text" />
<input id="Button1" type="button" value="确定" onclick="returnVal()" />
</form>
</body>
</html>




3.js
function createCoverLayer() {
var coverLayer = document.createElement("div");
coverLayer.id = "divCover";
coverLayer.style.position = "absolute";
coverLayer.style.top = 0;
coverLayer.style.left = 0;
coverLayer.style.height = "100%"; //FF不支持screen.height
coverLayer.style.width = "100%";
coverLayer.style.backgroundColor = "gray";
coverLayer.style.filter = "Alpha(Opacity=60)"; //for IE
coverLayer.style.opacity = "0.6"; //for FF

var showLayer = document.createElement("div");
showLayer.id = "divShow";
showLayer.style.position = "absolute";
showLayer.style.height = "700px";
showLayer.style.width = "700px";
showLayer.style.top = "150px";
showLayer.style.left = "280px";
var iframe = document.createElement("iframe");
// var iframe = document.createElement(" <iframe src='Child.aspx' width='500px' height='500px' frameborder='0'></iframe>");
//FF不支持上面的写法
iframe.src = "Child.aspx";
iframe.style.width = "400px";
iframe.style.height = "400px";
iframe.frameborder = 0;
showLayer.appendChild(iframe);

document.body.appendChild(coverLayer);
document.body.appendChild(showLayer);


}

function returnVal() {
var gift = document.getElementById("txtChild").value;
//获取父页面的docunment
var winParent = window.parent.document;
winParent.getElementById("txtParent").value = gift;
//移除遮盖层
winParent.body.removeChild(winParent.getElementById("divCover"));
//移除iframe层
winParent.body.removeChild(winParent.getElementById("divShow"));



}


uni-app 中的 NView 页面想要实现弹框遮盖 tabbar,你可以使用 Vue 的官方组件 `van-dialog` 或者自定义的弹窗组件,并结合样式调整来达到这个效果。这里是一个简单的步骤: 1. 首先,在你的项目中安装 vant 组件库(如果还没有安装): ```bash npm install @vant/weapp --save ``` 2. 引入 van-dialog 组件到需要弹框的 NVue 文件中: ```html <template> <view> <!-- ... 其他内容 --> <van-dialog v-model="dialogVisible" position="bottom"> <!-- 弹框的内容 --> <view slot="content"> <text>这是一个弹框</text> </view> <van-button slot="footer" @click="dialogVisible = false">关闭</van-button> </van-dialog> </view> </template> <script> import { Dialog } from '@vant/weapp'; export default { data() { return { dialogVisible: false, // 控制弹框是否显示 }; }, components: { 'van-dialog': Dialog, }, methods: { // 弹出或关闭弹框的方法 showDialog() { this.dialogVisible = true; }, hideDialog() { this.dialogVisible = false; }, }, }; </script> ``` 3. 为了确保当弹框打开时,tabbar会被遮盖,你需要调整弹框的样式和父级容器的定位。例如,设置弹框的 `position` 属性为 "fixed-bottom" 并给其父元素添加适当的样式来覆盖 tabbar: ```css .dialog-container { position: relative; /* 确保父容器可以包含 fixed 样式的元素 */ } .dialog-float-bottom { position: fixed; bottom: 0; width: 100%; z-index: 99; /* 将其置于 tabbar 之上 */ } ``` 然后在模板中应用这些样式: ```html <template> <div class="dialog-container"> <van-dialog ref="dialog" :style="{ position: dialogVisible ? 'dialog-float-bottom' : 'absolute' }" v-model="dialogVisible" position="bottom"> <!-- 弹框内容 --> </van-dialog> <!-- ...其他内容以及 tabbar --> </div> </template> ``` 当你打开 `showDialog()` 方法时,tabbar就会被隐藏。同样,点击关闭按钮或满足特定条件时调用 `hideDialog()`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值