遮罩层 + Iframe实现界面自动显示的示例代码


Posted in HTML / CSS onApril 26, 2020

前言

这周由于科三的考试耽误了两天,提前一天要去熟悉考场,第二天要考试,好在第二天晚上赶回来了,两天没敲代码就感觉别扭,这周写了点日志系统,写了点作业系统,果然技术还不到家,思路上出了点小问题。

效果

在教师评阅作业时,先把学生的作业展现出来,然后关掉界面进行评分
(用百度主页做演示)

遮罩层 + Iframe实现界面自动显示的示例代码

Iframe

iframe 用于在网页内显示网页,实现它的方法有多种:

<iframe src="URL"></iframe>

URL 指向隔离页面的位置,由于当时对src有误解,所以没有选用这种方法。

<iframe src="demo_iframe.htm" name="iframe_a"></iframe>
<p><a href="http://www.w3school.com.cn" target="iframe_a">W3School.com.cn</a></p>

要想让iframe显示a标签里链接的内容,就要使得iframe标签里的name属性与a标签里的target属性相等,这样的话,点击a标签的链接就能在iframe里显示相应的内容了。
于是当时的代码是:

<iframe height="500px" width="100%" name="iframe_work"></iframe>
<p><a target="iframe_work" style="display: none"
[href]="protocol + '//' + (this.work.student.no + '.' + host + '/' + getWorkDir()) | safeUrl"
#linkToWork>点击查看</a>
</p>
public load() {
    this.workService.getById({id: this.params.workId})
      .subscribe((data) => {
        this.work = data;
        this.goToWork();
      }, () => {
        console.log('error');
      });
  }
goToWork(): void {
this.linkToWork.nativeElement.click();
}

当时出来的效果是这样的但是有很大的缺陷,就是显示网页的窗口很小,学生的作业根本看不全,需要拖动底部和侧栏的滚动条。

遮罩层 + Iframe实现界面自动显示的示例代码

Iframe + 遮罩层

遮罩层就是为了把下方的界面挡起来,然后让ifream的内容显示在遮罩层上,以实现全屏显示学生作业内容的效果,代码如下:

<div class="mask" *ngIf="showPopWindow">
 <iframe  class="popWindow"  height="500px" width="100%" name="iframe_work"></iframe>
<p><a target="iframe_work" style="display: none"
[href]="protocol + '//' + (this.work.student.no + '.' + host + '/' + getWorkDir()) | safeUrl"
#linkToWork>点击查看</a>
</p>
</div>

有关遮罩层的使用可以看一下这个文档:5 定制提示框【前】

问题

利用showPopWindow这个属性控制遮罩层显示与否,后来就出现了这样的问题:

遮罩层 + Iframe实现界面自动显示的示例代码
 

这就说明 #inkToWork 所在的a标签的内容还未渲染出来,那找这个元素就找不到,也就没法实现点击,一开始控制遮罩层的变量为true,但是里面的内容渲染不出来,后来解决了好久,也是不行。

解决

后来晚上开会的时候说了这个问题,才发现这个问题真的挺好解决的,但是自己钻牛角尖了,之前一直以为src加的是文件,现在才知道能加链接,也是当时文档没看太明白吧,后来就改成了这个样子:

<div class="mask" *ngIf="showPopWindow">
  <iframe class="popWindow" height="94%" width="100%"  src="https://www.baidu.com/"></iframe>
  <button type="button" class="btn btn-primary btn-lg btn-block" (click)="exitPopWindow()">退出预览</button>
</div>

总结

在写功能之前,真的要好好看文档,每一种方法都认真看看,不然用的时候真的会吃大亏。

到此这篇关于遮罩层 + Iframe实现界面自动显示的示例代码的文章就介绍到这了,更多相关遮罩层 Iframe界面自动显示内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
CSS3属性 line-clamp控制文本行数的使用
Mar 19 HTML / CSS
详解background属性的8个属性值(面试题)
Nov 02 HTML / CSS
html5定制表单_动力节点Java学院整理
Jul 11 HTML / CSS
html5触摸事件判断滑动方向的实现
Jun 05 HTML / CSS
HTML5 语义化结构化规范化
Oct 17 HTML / CSS
HTML中使用SVG与SVG预定义形状元素介绍
Jun 28 HTML / CSS
HTML5地理定位实例
Oct 15 HTML / CSS
HTML5 Canvas中绘制矩形实例
Jan 01 HTML / CSS
HTML5单页面手势滑屏切换原理分析
Jul 10 HTML / CSS
htnl5利用svg页面高斯模糊的方法
Jul 20 HTML / CSS
HTML5实现移动端弹幕动画效果
Aug 01 HTML / CSS
使用placeholder属性设置input文本框的提示信息
Feb 19 HTML / CSS
html5中使用hotcss.js实现手机端自适配的方法
Apr 23 #HTML / CSS
html5 canvas 实现光线沿不规则路径运动
Apr 20 #HTML / CSS
基于HTML5+tracking.js实现刷脸支付功能
Apr 16 #HTML / CSS
HTML中meta标签及Keywords
Apr 15 #HTML / CSS
详解移动端h5页面根据屏幕适配的四种方案
Apr 15 #HTML / CSS
html5移动端自适应布局的实现
Apr 15 #HTML / CSS
HTML里显示pdf、word、xls、ppt的方法示例
Apr 14 #HTML / CSS
You might like
joomla内置的表单验证功能使用方法
2010/06/11 PHP
PHP读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
2016/11/15 PHP
PHP如何开启Opcache功能提升程序处理效率
2020/04/27 PHP
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
js 窗口抖动示例
2013/09/04 Javascript
js实现透明度渐变效果的方法
2015/04/10 Javascript
jQuery实现标题有打字效果的焦点图代码
2015/11/16 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
2018/03/06 Javascript
JS中实现隐藏部分姓名或者电话号码的代码
2018/07/17 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
2018/11/08 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
解决VUE双向绑定失效的问题
2019/10/29 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
python命令行参数解析OptionParser类用法实例
2014/10/09 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
Django项目使用CircleCI的方法示例
2019/07/14 Python
python rsync服务器之间文件夹同步脚本
2019/08/29 Python
python使用SQLAlchemy操作MySQL
2020/01/02 Python
Python3实现个位数字和十位数字对调, 其乘积不变
2020/05/03 Python
Django中的AutoField字段使用
2020/05/18 Python
Python如何将模块打包并发布
2020/08/30 Python
有750多个顶级品牌的瑞士时尚在线:ABOUT YOU
2017/01/04 全球购物
经典c++面试题三
2015/07/08 面试题
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
优秀员工自荐书
2013/12/19 职场文书
小露珠教学反思
2014/04/30 职场文书
先进班组材料范文
2014/12/25 职场文书
艺术节开幕词
2015/01/28 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
2016基督教会圣诞节开幕词
2016/03/04 职场文书
一篇文章搞懂python混乱的切换操作与优雅的推导式
2021/08/23 Python
MySQL Server层四个日志的实现
2022/03/31 MySQL