php手把手教你做网站(十七)vue实现提示弹窗效果,ie不支持vue

boyanx3个月前技术教程11

我是把弹窗的html都写在了页面app里边。

1、html代码

<div class="layui-body"  id="app">
  <div  ><button  @click="queren">显示确认框</button><button  @click="qshanchu">显示删除框</button></div>
  <div class='zzc none'  :class="{'nonone':showzzc==1}">
  <div class='confir' v-show="showts==1">
    <h3>温馨提示</h3>
	<p>确认要删除吗?</p>
	<div class='del-btn-item'>
	  <dl>
	    <dd>
		  <button type='button' class='confire_btn_no'   @click="hidetc">取消</button>
		  <button type='button' class='confire_btn_yes' @click="isdelc">确认</button>
	    </dd>
	  </dl>
    </div>
  </div>
  <div class='confir' v-show="showts==2">
    <h3>温馨提示</h3>
    <p>{{tis}}</p>
    <div class='del-btn-item'>
      <dl>
	    <dd>
		  <button type='button' class='confire_btn_yes_full confire_btn_yes' @click="hidetc">确认</button>
	    </dd>
	  </dl>
    </div>
  </div>
</div>
</div>

2、css代码

.zzc{position:fixed;width:100%;height:100%;z-index:111111;background-color:rgba(221,221,221,0.7);left:0;top:0;}
.zzc .confir{position:fixed;border:2px solid #009688;z-index:222222;background: #FFF;left:50%;top:50%;border-radius:5px;width:350px;height:200px;margin-left:-175px;margin-top:-100px;}
.zzc .confir h3{width:100%;text-indent:10px;font-size:16px;height:40px;line-height:40px;border-bottom:1px solid #DDD;}
.confir  p{background:url(../images/icon_exc_small.gif)  no-repeat 30px center;height:80px;line-height:80px;display:block;width:100%;text-indent:120px;font-size:16px;}
.confir  button{font-size:14px;padding:10px 30px;margin:0 5px;border:0;cursor:pointer;}
.confir  .confire_btn_no{background:#F2F2F2;}
.confir  .confire_btn_yes{background:#009688;color:#FFF;}
.confir  .del-btn-item{margin-top:20px;}
.confir  .del-btn-item dd{text-align:center;}
.confir  .confire_btn_yes_full{width:calc(100% - 60px);margin:0 auto;}
.none{display:none;}
.nonone{display:block !important}

使用rgba直接设置background-color透明度,background-color:rgba(221,221,221,0.7),0.7即为透明度

3、js代码

 new Vue({
    el: '#app',
    data(){
		return {
		  tis:'',           //提示内容
		  showzzc:0,         //弹出框的显示,隐藏 。0 隐藏  1显示
		  showts:0,          //1 弹出提示操作框  2 弹出提示确认框 
		 }
    },
    methods:{
    	  hidetc:function(){
		        this.showzzc=0;
	      },
        isdelc:function(){
			    //这里是删除的操作
			    this.showzzc=0;//赋值为0, 隐藏弹出框
	      },
	      queren:function(){
		      this.showzzc=1;
		      this.showts=2;
		      this.tis="你点击了显示确认框";
	      },

	      qshanchu:function(){
		      this.showzzc=1;
		      this.showts=1;
	      },
    }
  })

说明:

  1. 在1中可以看到 使用的<div class='zzc none' :class="{'nonone':showzzc==1}"> 操作的是class ,而不是使用v-if 或者v-show,这是因为vue是在最后渲染,如果不加none,打开页面的时候,窗口有一个闪现的过程,这很明显不是我们想要的效果,如果加上none,v-if,v-show 就失去了作用;
  2. nonone 加上!important ,优先级高于none,让class='none',失去了作用,达到我们想要的显示隐藏的效果;
  3. 弹窗可能提示的内容不同,提示的信息直接读取基础数据tis的信息,例如:上传图片,可能会提示大小超出,格式不对;
  4. 360急速浏览器在兼容模式下,vue都失效,没有解析;

解决办法如下:

第一步:在头部加载browser.min.js,

第二步:判断浏览器是否为ie浏览器

第三步:如果是ie,在vue的<script>处加上type="text/babel"

完整代码:

<script  type="text/javascript" >
     if (!!window.ActiveXObject || "ActiveXObject" in window){
		 document.write("<scri"+"pt src=\"/public/admin/js/art.js\" type=\"text/babel\"></s"+"cript>");
     }else{
		 document.write("<scri"+"pt src=\"/public/admin/js/art.js\" ></s"+"cript>");
	 }
</script>

我的vue的代码写在了art.js,主要就是判断是否ie,然后决定是否加上 type="text/babel",如果不是ie,加上以后别的浏览器就不好用了。

标签: js弹窗

相关文章

2024年,你需要掌握的 30 个 JavaScript 面试问题和答案(基础篇)

转载说明:原创不易,未经授权,谢绝任何形式的转载面试 JavaScript 职位?没问题!今天,我要和大家分享一些关于 JavaScript 的面试题及其答案,帮助你在 2024 年的技术面试中脱颖而...

用HTML内置的popover属性做一个提示窗

如何用Popover魔法在HTML中创建用户友好的提示最近我在阅读一篇关于如何构建"让用户感觉毫不费力"的Web界面的文章,但像tooltip这样的分层UI元素可能成为编码噩梦。我热爱...

JS打造“九宫格抽奖”_js实现九宫格抽奖

在如今的营销活动中,抽奖功能已经成为提升用户活跃度的标配。尤其是“九宫格抽奖”这种形式,因其视觉冲击力强、交互简单、适配性好,被广泛应用于电商、社交、内容平台等各类场景。本文将带你从零开始,使用 原生...

给大伙支两招,一键去网页跳转弹窗

很多网页都加入了一个鸡贼的操作——「打开 App 阅读全文」。明明可以一次性把内容展示出来,非得给你隐藏一半,剩下一半需要下载 App 才能看。要不是隔着一条网线,这种话说到一半的人,真的,应该拖出去...

js逆向,web逆向技巧分享_js逆向工程

当我们抓取网页端数据时,经常被加密参数、加密数据所困扰,如何快速定位这些加解密函数,尤为重要。在这里分享一些技巧,如有遗漏,欢迎补充。所需工具:浏览器(Chrome,Edge等)搜索全局搜索适用于根据...

JavaScript 事件循环机制详解_js事件循环和任务队列

记录、分享IT相关知识和见闻!想要了解更多软件相关知识的朋友!记得右上角添加【关注】,支持一下!JavaScript 是单线程语言,意味着同一时间只能执行一个任务。为了处理异步操作(如定时器、网络请求...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。