基于 Vue.js 的消息气泡插件

Posted 前端人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于 Vue.js 的消息气泡插件相关的知识,希望对你有一定的参考价值。

今天介绍一款仿照QQ消息气泡的插件vue-bubble

仿照QQ消息气泡想法的起源是来自掘金的安卓小伙伴们,看到他们在安卓平台实现了这种效果,所以想迁移到web上。在这里要感谢他们。

先放张图看一下效果:





实现原理

  • 使用SVG绘制贝塞尔曲线以及圆形气泡。

  • 关键点的坐标计算借鉴这位小伙伴的思路高仿QQ未读消息气泡拖拽黏连效果,非常感谢他。

  • 气泡抖动是在鼠标抬起(mouseup)(移动设备上用的ontouchend,ontouchcanel)事件触发时,使用定时器更新元素坐标。

如何使用

这个插件使用起来也是相当简单了:

  1. 安装

    npm install vue-bubble
  2. 引入

    const vueBubble from 'vue-bubble'Vue.use(vueBubble)
  3. 使用
    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 的消息气泡插件的主要内容,如果未能解决你的问题,请参考以下文章

使用带有渲染功能的 Vue.js 3 片段

前端开发:基于Vue.js的辅助工具

vue有没有什么插件可以随机生成15位的密码

vue的爬坑之路之----基于vue-cli 无限滚动插件无限加载

基于角色的身份验证 vue js firebase

vuevideo基于vue.js的视频播放器组件