我是用ionic3作的,直接上代码,分三个文件:javascript
1.htmlcss
1.1页面写蒙版以下html
<ion-content [ngClass]="{'content-mask':isMask}"> <div *ngIf="isMask" id="mask" class="mask" (click)="clickOther()"> <div class="mask-content"> <img src="assets/imgs/test-search/search.png"> <p click)="clickText()">悬浮框要写的内容在这儿呢~~~~</p> <p class="mask-close" (click)="closeModel()">X</p> </div> </div> </ion-content>
1.2在页面底部能够定义按钮显示蒙版java
<ion-footer> <ion-toolbar (click)="showModel()"> <ion-title>点我就弹出蒙版了~~</ion-title> </ion-toolbar> </ion-footer>
2.css 页面样式例子以下ionic
2.1 主要是.content-mask这个类,如注释所说,可禁止页面滚动和遮盖全屏flex
.content-mask{ .scroll-content { overflow: hidden;//蒙版出现时禁止页面滚动 z-index: 1000;//蒙版遮住整个手机屏幕(包括状态栏) } }
2.2下面为蒙版和悬浮框样式 this
.mask{ position: fixed; top: 0; left: 0; bottom: 0; background-color: rgba(9, 9, 9, 0.3); width: 100%; height: 100%; z-index: 1000; } .mask-content { position: relative; display: flex; justify-content: center; align-items: center; width: 80%; text-align: center; background: #ffffff; border-radius: 6px; margin: 60% auto; line-height: 50px; z-index: 10001; font-size: 2rem; img{ width: 3rem; height: 3rem; } } .mask-close{ position: absolute; margin: 0; top: -15px; right: -15px; width: 30px; height: 30px; background-color: rgba(243, 243, 243, 1); font-size: 2rem; border-radius: 15px; line-height: 30px; }
3.tscode
3.1先定义变量,判断是否弹出,默认不弹出htm
isMask = false;
3.2点击底部按钮,调用showModel方法,弹出ip
/** * 弹出悬浮框 */ showModel() { this.isMask = true; document.getElementById('mask').style.display = 'block'; }
3.3点击屏幕各个部分对应的方法以下
/** * 关闭悬浮框 */ closeModel() { console.log('点我悬浮框就要关闭了~~~'); this.isMask = false; document.getElementById('mask').style.display = 'none'; } /** * 点击悬浮框里面的内容 */ clickText() { console.log('终于点到内容上了,你能够干你想干的事了,哈哈~~~'); } /** * 点击页面的其余地方 */ clickOther() { console.log('亲爱滴,您点到其余地方去了~~~'); }
到此完美结束,若是用的过程有疑问,欢迎随时交流指点