基于 Vue.js 的消息气泡插件
Posted 前端人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于 Vue.js 的消息气泡插件相关的知识,希望对你有一定的参考价值。
今天介绍一款仿照QQ消息气泡的插件vue-bubble
仿照QQ消息气泡想法的起源是来自掘金的安卓小伙伴们,看到他们在安卓平台实现了这种效果,所以想迁移到web上。在这里要感谢他们。
先放张图看一下效果:
实现原理
使用SVG绘制贝塞尔曲线以及圆形气泡。
关键点的坐标计算借鉴这位小伙伴的思路高仿QQ未读消息气泡拖拽黏连效果,非常感谢他。
气泡抖动是在鼠标抬起(mouseup)(移动设备上用的ontouchend,ontouchcanel)事件触发时,使用定时器更新元素坐标。
如何使用
这个插件使用起来也是相当简单了:
安装
npm install vue-bubble
引入
const vueBubble from 'vue-bubble'Vue.use(vueBubble)
使用
v-bubble指令对应的是一个对象。该对象有如下可选值:
value
必选,消息气泡显示的内容,value为0的时候,气泡默认是不显示的。
show
可选,是否显示消息气泡,true为显示,false为隐藏。需要注意的是,该属性优先级大于value
比如,value=0,show为true,这种情况show起作用,value忽略,所以气泡显示。afterHide
可选,回调函数,气泡拖拽消失之后执行的回调,一般用于重置value。afterHide如果想带参数的话,可以使用下面的方式来配置,利用Function.prototype.bind函数把要携带的参数传递过去。
下面代码是github仓库中的demo代码片段。
<i v-bubble="{show:item.show,afterHide: (hide.bind(this,item)),value : item.count}" class="msg"></i>
结语
━━━━━
前端技术分享扫码关注下吧
以上是关于基于 Vue.js 的消息气泡插件的主要内容,如果未能解决你的问题,请参考以下文章