Vue自定义弹窗指令的实现代码
2018-08-13 09:41
951 查看
目标
使用vue2.0实现自定义弹窗指令,当标签有该指令时,点击标签可以弹出弹窗
实现
<!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自定义弹窗指令的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
相关文章推荐
- 用Swift写一个IOS的自定义弹窗-纯代码实现
- vue 自定义提示框(Toast)组件的实现代码
- vue自定义一个v-model的实现代码
- Vue自定义过滤器格式化数字三位加一逗号实现代码
- vue自定义底部导航栏Tabbar的实现代码
- Vue-Cli中自定义过滤器的实现代码
- 两行代码搞定iOS自定义HUD风格动画弹窗(支持选择记录) - SKChoosePopView的使用和实现思路
- vue 指令之气泡提示效果的实现代码
- vue弹窗组件的实现示例代码
- 浅谈 Vue v-model指令的实现原理 - 如何利用v-model设计自定义的表单组件
- 致我曾经敲过的代码——初涉JAVA 自定义链表的实现
- Vue组件实例间的直接访问实现代码
- vue实现仿淘宝结账页面实例代码
- 自定义注解的简单实现例子,附上代码和测试结果图
- QT实现自定义安装和卸载代码
- Https 忽略证书\使用自定义证书的java代码实现
- 2018.01.29.使用vue组件modal制作登陆弹窗,并实现背景灰蒙透明效果
- vue移动端轻量级的轮播组件实现代码
- Android实现自定义加载框的代码示例
- iOS - 网易新闻音乐滑动导航条实现(代码简单,自定义扩展)