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 相关文章推荐
简短几句 通俗解释javascript的闭包
Jan 17 Javascript
js批量设置样式的三种方法不推荐使用with
Feb 25 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
Aug 06 Javascript
js简单的点击返回顶部效果实现方法
Apr 10 Javascript
js实现非常简单的焦点图切换特效实例
May 07 Javascript
使用javaScript动态加载Js文件和Css文件
Oct 24 Javascript
AngularJS通过$http和服务器通信详解
Sep 21 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
Dec 17 Javascript
vue中路由验证和相应拦截的使用详解
Dec 13 Javascript
ExtJs整合Echarts的示例代码
Feb 27 Javascript
vue.js在标签属性中插入变量参数的方法
Mar 06 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
Aug 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
造势之举?韩国总统候选人发布《星际争霸》地图
2017/04/22 星际争霸
在PHP中使用模板的方法
2008/05/24 PHP
php下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
php操作sqlserver关于时间日期读取的小小见解
2009/11/29 PHP
Codeigniter购物车类不能添加中文的解决方法
2014/11/29 PHP
typecho插件编写教程(二):写一个新插件
2015/05/28 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
JavaScript 字符串连接性能优化
2008/12/20 Javascript
jQuery学习笔记 更改jQuery对象
2012/09/19 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
详解项目升级到vue-cli3的正确姿势
2019/01/28 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
微信小程序订阅消息(java后端实现)开发
2020/06/01 Javascript
在Vue中使用Viser说明(基于AntV-G2可视化引擎)
2020/10/28 Javascript
微信小程序实现自定义底部导航
2020/11/18 Javascript
python的else子句使用指南
2016/02/27 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
12个Python程序员面试必备问题与答案(小结)
2019/06/24 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
戴森比利时官方网站:Dyson BE
2020/10/03 全球购物
行政专员的岗位职责
2014/03/10 职场文书
揭牌仪式主持词
2014/03/19 职场文书
办理信用卡工作证明
2014/09/30 职场文书
党员转正介绍人意见
2015/06/03 职场文书
2016学校元旦晚会经典开场白台词
2015/12/03 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis
springboot 多数据源配置不生效遇到的坑及解决
2021/11/17 Java/Android
Redis 限流器
2022/05/15 Redis