Vue自定义弹窗指令的实现代码


Posted in Javascript onAugust 13, 2018

目标

使用vue2.0实现自定义弹窗指令,当标签有该指令时,点击标签可以弹出弹窗

Vue自定义弹窗指令的实现代码

实现

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>Document</title>
 <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
 <div id="app">
  <button id="btn" v-popup="{text: '这是一个自定义的弹窗'}">点击我弹窗哈哈哈</button>
  <div id="d"></div>
 </div>
 <script>
   Vue.directive('popup', {
    inserted: function (el, binding) {
     // console.log(binding.value.text)
     var o = el;
     var myDiv = document.createElement('div');
     myDiv.style.width = '300px';
     // myDiv.style.height = '130px';
     myDiv.style.position = 'fixed';
     myDiv.style.top = '50%';
     myDiv.style.left = '50%';
     myDiv.style.transform = 'translate(-50%, -100%)';
     myDiv.style.zIndex = '100';
     myDiv.style.backgroundColor = '#f3f5f8';
     myDiv.style.display = 'none';
     myDiv.style.textAlign = 'center';
     myDiv.style.paddingTop = '15px'
     myDiv.style.borderRadius = '5px';
     myDiv.style.borderWidth = '1px';
     myDiv.style.borderStyle = 'solid';
     myDiv.style.borderColor = '#696969';
     var myContent = document.createElement('p');
     var myText = document.createTextNode(binding.value.text);
     var btnWrapper = document.createElement('div')
     btnWrapper.style.marginTop = '20px'
     btnWrapper.style.marginBottom = '20px'
     var myConfirm = document.createElement('input');
     myConfirm.type = 'button';
     myConfirm.value = '确定';
     myConfirm.style.marginRight = '15px'
     var myCancel = document.createElement('input');
     myCancel.type = 'button';
     myCancel.value = '取消';
     btnWrapper.appendChild(myConfirm)
     btnWrapper.appendChild(myCancel)
     myDiv.appendChild(myContent.appendChild(myText))
     myDiv.appendChild(btnWrapper)
     document.body.appendChild(myDiv);
     o.onclick = function (event) {
      myDiv.style.display = 'block'
     }
     myConfirm.onclick = function (event) {
      myDiv.style.display = 'none'
     }
     myCancel.onclick = function (event) {
      myDiv.style.display = 'none'
     }
    }
   })
   var vm = new Vue({
    el: '#app',
    data:{
    }
   })
 </script>
</body>
</html>

总结

以上所述是小编给大家介绍的Vue自定义弹窗指令的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
ext combox 下拉框不出现自动提示,自动选中的解决方法
Feb 24 Javascript
JS调用页面表格导出excel示例代码
Mar 18 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
Oct 26 Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
Dec 12 Javascript
jquery if条件语句的写法
May 19 Javascript
详解jQuery中的DOM操作
Dec 23 Javascript
老生常谈的跨域处理
Jan 11 Javascript
es6学习笔记之Async函数基本教程
May 11 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
Jul 05 Javascript
Vue filters过滤器的使用方法
Jul 14 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
Jan 27 jQuery
VUE单页面切换动画代码(全网最好的切换效果)
Oct 31 Javascript
深入Vue-Router路由嵌套理解
Aug 13 #Javascript
AngularJS与后端php的数据交互方法
Aug 13 #Javascript
Vue Promise的axios请求封装详解
Aug 13 #Javascript
Angular6封装http请求的步骤详解
Aug 13 #Javascript
解决angularjs中同步执行http请求的方法
Aug 13 #Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
Aug 13 #Javascript
AngularJS使用$http配置对象方式与服务端交互方法
Aug 13 #Javascript
You might like
php中用foreach来操作数组的代码
2011/07/17 PHP
解析关于wamp启动是80端口被占用的问题
2013/06/21 PHP
jquery form表单提交插件asp.net后台中文解码
2010/06/12 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
javascript 二进制运算技巧解析
2012/11/27 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
node.js中的fs.readdirSync方法使用说明
2014/12/17 Javascript
JavaScript实现简单获取当前网页网址的方法
2015/11/09 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
2016/09/18 Javascript
jQuery中的100个技巧汇总
2016/12/15 Javascript
jQuery.parseHTML() 函数详解
2017/01/09 Javascript
jQuery validata插件实现方法
2017/06/25 jQuery
Angular 作用域scope的具体使用
2017/12/11 Javascript
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
实现vuex与组件data之间的数据同步更新方式
2019/11/12 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
[55:26]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第一场 2月23日
2021/03/11 DOTA
在Django的视图(View)外使用Session的方法
2015/07/23 Python
Python二分查找详解
2015/09/13 Python
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
Django集成celery发送异步邮件实例
2019/12/17 Python
Python bytes string相互转换过程解析
2020/03/05 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
建材业务员岗位职责
2013/12/08 职场文书
网络专业学生个人的自我评价
2013/12/16 职场文书
素质拓展感言
2014/01/29 职场文书
《东方明珠》教学反思
2014/04/20 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
大学生自荐信怎么写
2015/03/26 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
农村婚庆主持词
2015/06/29 职场文书
Python Pandas常用函数方法总结
2021/06/15 Python