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 相关文章推荐
关于IE7 IE8弹出窗口顶上
Dec 22 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
Jun 21 Javascript
使用jquery.validate自定义方法实现&quot;手机号码或者固话至少填写一个&quot;的逻辑验证
Sep 01 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
Oct 17 Javascript
javascript实现tab切换的两个实例
Nov 05 Javascript
七个不允许错过的jQuery小技巧
Dec 21 Javascript
angularjs中的$eval方法详解
Apr 24 Javascript
深入理解Javascript中的作用域链和闭包
Apr 25 Javascript
vue增删改查的简单操作
Jul 15 Javascript
如何为你的JavaScript代码日志着色详解
Apr 08 Javascript
微信小程序与公众号实现数据互通的方法
Jul 25 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
Sep 20 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将向Java靠拢
2006/10/09 PHP
PHP语法速查表
2007/01/02 PHP
destoon调用自定义模板及样式的公告栏
2014/06/21 PHP
php去掉URL网址中带有PHPSESSID的配置方法
2014/07/08 PHP
PHP Ajax实现无刷新附件上传
2016/08/17 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
jQuery渐变发光导航菜单的实例代码
2013/03/27 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
2014/07/31 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
基于JS代码实现图片在页面中旋转效果
2016/06/16 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
2017/05/18 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
chosen实现省市区三级联动
2018/08/16 Javascript
小程序清理本地缓存的方法
2018/08/17 Javascript
详解webpack打包第三方类库的正确姿势
2018/10/20 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
Vue项目中使用WebUploader实现文件上传的方法
2019/07/21 Javascript
layui实现tab的添加拒绝重复的方法
2019/09/04 Javascript
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
详解Python if-elif-else知识点
2018/06/11 Python
Python判断对象是否为文件对象(file object)的三种方法示例
2019/04/26 Python
Python 给定的经纬度标注在地图上的实现方法
2019/07/05 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
2019/07/17 Python
Python类型转换的魔术方法详解
2020/12/23 Python
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
DataReader和DataSet的异同
2014/12/31 面试题
基本公共卫生服务健康教育工作方案
2014/05/22 职场文书
小学课外活动总结
2014/07/09 职场文书
教师作风建设剖析材料
2014/10/11 职场文书
孙振耀退休感言
2015/08/01 职场文书
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技