多语言展示
当前在线:193今日阅读:86今日分享:14

vue实现alert功能

原生alert的缺点会阻塞一切操作,影响用户体验很多浏览器会默认静止alert,例如微信。原生alert框样式丑陋。
工具/原料

javascript

方法/步骤
1

css思路:最外层是一个黑色透明撑满全屏幕的div并且是fixed的div.modal-mask。在mask内部是一个垂直居中的div框大小可以固定。垂直居中方法有几种可选。选用lex。关键性的css代码如下:

2

其中modal-confirm是alert框,有固定的宽度400px 还有padding, 在小屏上(屏幕宽度小于640px)取消了固定宽度。减少了padding的值,看起来更小巧。开发vue组件vue template这个组件功能能像原生的alert事件一样随时随地的方便调用。 不希望每次都new Vue({})一个实例。 所以我做了一些不一样的设计。

3

v-show是控制alert组件的显示和隐藏的指令。 {{ }}是vue默认的模版标记。@click 是绑定click事件的指令vue data

4

show 是控制显示隐藏的标记。onCancel onOk 是点击取消或者确定时候触发的回调。title content 是alert显示的文本。vue methods

5

alert(setting) 方法是控制显示alert组件的方法。接受一个object的参数配置。op(type) 方法是点击取消和确定按钮的时候触发的时候。hack代码

6

这一段代码作用是一开始就把vue实例插入到 body 底部,方便直接 alert 调用。加入一些动画效果依赖的是vue指令 transition 具体的用法教程 大家去过渡-传送门

推荐信息