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 相关文章推荐
HTML DOM的nodeType值介绍
Mar 31 Javascript
js动态创建标签示例代码
Jun 09 Javascript
js倒计时抢购实例
Dec 20 Javascript
JS实现图片剪裁并预览效果
Aug 12 Javascript
canvas实现刮刮卡效果
Mar 14 Javascript
vue.js $refs和$emit 父子组件交互的方法
Dec 20 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
May 09 jQuery
node之本地服务器图片上传的方法示例
Mar 26 Javascript
vue 实现小程序或商品秒杀倒计时
Apr 14 Javascript
layui表单验证select下拉框实现验证的方法
Sep 05 Javascript
vue-cli 为项目设置别名的方法
Oct 15 Javascript
Element中Slider滑块的具体使用
Jul 29 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.ini中文版
2006/10/09 PHP
PHP中动态显示签名和ip原理
2007/03/28 PHP
PHP程序61条面向对象分析设计的经验小结
2008/11/12 PHP
php+ajax实现无刷新动态加载数据技术
2015/04/28 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
2017/08/04 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
PHP常用函数之格式化时间操作示例
2019/10/21 PHP
js用图作提交按钮或超连接
2008/03/26 Javascript
各种效果的jquery ui(接口)介绍
2008/09/17 Javascript
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
遍历DOM对象内的元素属性示例代码
2014/02/08 Javascript
node+express+ejs制作简单页面上手指南
2014/11/26 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
jquery UI Datepicker时间控件的使用方法(加强版)
2015/11/07 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
JS控制伪元素的方法汇总
2016/04/06 Javascript
实用又漂亮的BootstrapValidator表单验证插件
2016/05/30 Javascript
jquery判断对象是否为空并遍历对象的简单实例
2016/07/26 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
使用koa-log4管理nodeJs日志笔记的使用方法
2018/11/30 NodeJs
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
JavaScript实现移动小精灵的案例代码
2020/12/12 Javascript
简单谈谈Python中的元祖(Tuple)和字典(Dict)
2017/04/21 Python
Python之文字转图片方法
2018/05/10 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
css3实现波纹特效、H5实现动态波浪效果
2018/01/31 HTML / CSS
利用CSS3的transition属性实现滑动效果
2015/08/05 HTML / CSS
深深扎根运动世界的生活品牌:Tillys
2017/10/30 全球购物
店长助理岗位职责
2013/12/13 职场文书
继承公证书样本
2014/04/04 职场文书
电子信息工程专业自荐书
2014/06/24 职场文书
2015大一新生军训感言
2015/08/01 职场文书
vue ref如何获取子组件属性值
2022/03/31 Vue.js
Golang 1.18 多模块Multi-Module工作区模式的新特性
2022/04/11 Golang