vue插件--仿微信小程序showModel实现模态提示窗功能

2022-01-13,,,,

这篇文章主要介绍了vue插件--仿微信小程序showModel实现模态提示窗,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

效果图:

下面是源码:

index.js

 import Vue from 'vue'; import model from './model.vue'; export default { install(Vue) { const defaults = { show: false, mask: true, title: '提示', content: '这是正文', confirmButton: true, cancelButton: true, confirmText: '确认', cancelText: '取消', cancelCallBack: () => {}, confirmCallBack: () => {} }; const modelVueConstructor = Vue.extend(model); Vue.prototype.$model = (options = {}) => { if (Vue.prototype.$isServer) return; options = Object.assign({}, defaults, options); let parent = document.body ; let instance = new modelVueConstructor({ el: document.createElement('div'), data: options }); parent.appendChild(instance.$el); return instance; }; }, };

model.vue

    {{title}}  .model-container{ width: 100%; height: 100vh; position: fixed; top: 0; left: 0; z-index: var(--model-index); display: flex; justify-content: center; align-items: center; .model-main{ position: relative; z-index: 9; width: 80%; background-color: #ffffff; border-radius: 10px; overflow: hidden; text-align: center; .model-title{ font-size: 18px; color: #333; width: 100%; padding: 18px; font-weight: bold; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .model-content{ font-size: 16px; color: #666; padding: 10px; padding-top: 0px; padding-bottom: 20px; } .model-buttons{ width: 100%; display: flex; align-items: center; .button{ flex: 1; padding: 18px 10px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 16px; outline: none; background-color: #ffffff; border-top: 1px solid #f2f2f2; border-right: 1px solid #f2f2f2; &.confirm{ color: var(--theme); font-weight: bold; } &:last-child{ border-right: 0; } &:active{ background-color: #f2f2f2; } } } } .model-mask{ width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 1; background-color: rgba(0,0,0,0.45); } } 

通过添加实例方法,把插件添加到vue.prototype上来实现。

在使用之前需要将插件挂载到Vue全局实例上:

main.js

 import VueModel from './components/model/index.js'; Vue.use(VueModel);

完成上述条件后,就可以在你的vue项目中使用啦:

 this.$model({ show: true, title: "提示", content: "提示内容", cancelButton: true, confirmCallBack: () => { console.log("确认"); }, cancelCallBack: () => { console.log("取消"); } });

总结

到此这篇关于vue插件--仿微信小程序showModel实现模态提示窗的文章就介绍到这了,更多相关微信小程序showModel实现模态提示窗内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

以上就是vue插件--仿微信小程序showModel实现模态提示窗功能的详细内容,更多请关注本站其它相关文章!

《vue插件--仿微信小程序showModel实现模态提示窗功能.doc》

下载本文的Word格式文档,以方便收藏与打印。