Socket
Socket
Sign inDemoInstall

vue-float-action-button

Package Overview
Dependencies
0
Maintainers
1
Versions
54
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    vue-float-action-button

vue, float action button


Version published
Weekly downloads
859
decreased by-11.35%
Maintainers
1
Install size
809 kB
Created
Weekly downloads
 

Readme

Source

Vue Floating Action Button

❤❤❤❤ a beautiful Floating Action Button ❤❤❤❤
支持iconfont以及material icons

Monthly downloads 5.8 kB min+gzip License

Coverage Status

Demo

homepage and document

English Doc

demo代码

8.gif

7.gif


Features

  • 支持多种动画
  • 支持滚动/手势自动显示/隐藏
  • 支持Material Design ICON
  • 支持阿里巴巴iconfont.cn
  • 支持点击空白处自动隐藏
  • 动画流畅复刻Material Design
  • 0依赖 体积小 min + gzip打包后 仅5.8KB

Installation and use

$ yarn add vue-float-action-button
$ npm install vue-float-action-button
import App from './App.vue'
import VueFab from 'vue-float-action-button'
import Vue from 'vue'

Vue.use(VueFab, /* {
  ----------------------
  // opitons 可选iconfont图标或MaterialIcons
  iconType: 'MaterialDesign'
  // iconType: 'iconfont'
} */)

new Vue({
  render: h => h(App)
}).$mount('#app')

本组件支持两种图标 一种为 Material Design 的图标 需要在网页中引入

// index.html
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">

// App.vue
<vue-fab mainBtnColor="#3599DB">
  <fab-item @clickItem="clickItem" :idx="0" title="add" icon="add" />
  <fab-item @clickItem="clickItem" :idx="1" title="https" icon="https" />
  <fab-item @clickItem="clickItem" :idx="2" title="edit" icon="edit" />
</vue-fab>

所有ICON皆可从 https://material.io/icons/ 中查找

如使用阿里巴巴矢量图标库 https://www.iconfont.cn 则按提示引入

<vue-fab icon="icon-jia" 
  fabItemAnimate="default" 
  mainBtnColor="#16C2C2">
  <fab-item @clickItem="clickBABA" icon="icon-Rxing" :idx="0" title="iconfont.cn">
  </fab-item>
  <fab-item @clickItem="clickBABA" icon="icon-huanyihuan1" :idx="1" title="交换">
  </fab-item>
  <fab-item @clickItem="clickBABA" icon="icon-fangda1" :idx="2" title="聚焦">
  </fab-item>
</vue-fab>
Vue-Fab在底层已抹平两者使用区别 引入后仅需使用icon属性传入即可

Examples

<template>
<vue-fab
  :mainBtnColor="mainBtnColor">
  <fab-item 
    v-for="(item, idx) in menu"
    :idx="idx"
    :title="item.title"
    :color="item.color"
    :icon="item.icon"
    @clickItem="clickItem" />
</vue-fab>
</template>

<script>
  export default {
    name: 'example',
    data () {
      return {
        menu: [
          {
            icon: 'done',
            title: 'good job!',
            color: '#ff9900'
          },
          {
            icon: 'toc',
            title: '',
            color: '#999'
          }
        ],
        mainBtnColor: '#3eaf7c'
      }
    },
    methods: {
      clickItem: function (item) {
        window.alert(item.idx)
      }
    }
  }
</script>


API

options

OptionTypeParamsDescription
iconTypeString'MaterialDesign'/'iconfont'根据您的使用习惯或开发依赖来决定使用哪种图标
Vue.use(VueFab, /* {
  ----------------------
  // opitons 可选iconfont图标或MaterialIcons
  iconType: 'MaterialDesign'
  // iconType: 'iconfont'
} */)

vue-fab API

Props

OptionTypeDefaultParamsDescription
iconTypeString'MaterialDesign''MaterialDesign'/'iconfont'根据您的使用习惯或开发依赖来决定使用哪种图标
autoHideDirectionString'up''up' / 'down'滚动自动隐藏的方向控制,默认值up为向下展示向上隐藏down值为向上展示向下隐藏
unfoldDirectionString'up''up' / 'down'展开方向,向上或者向下
iconString'add'/未激活的icon
activeIconString'add'/激活后的icon
sizeString'Normal''big' / 'normal' / 'small'主Fab的尺寸 子菜单会随之变化
mainBtnColorString'#E64C3B'/主按钮颜色
hiddenBooleantruetrue / false是否隐藏Fab
fabAnimateBezierStringlinear'ease' / 'linear' / 'ease-in' / 'ease-out' / 'ease-in-out' / '.18,.89,.91,.17'主按钮显示消失(hidden)的贝塞尔曲线 如填入贝塞尔曲线 直接填入'n,n,n,n'或'liner'
z-indexNumber5/fab的层级
shadowBooleantruetrue / false主button的阴影
clickAutoCloseBooleantruetrue / false点击子菜单项后是否关闭菜单
scrollAutoHideBooleantruetrue / false滚动是否触发自动隐藏 (PC端和Mobile端实现方式有所不同 分别根据scroll事件和touchmove事件实现)
autoHideThresholdNumber10/滚动触发自动隐藏的阈值 单位px
fabAutoHideAnimateModelString'alive''default' / 'alive'fab滚动触发自动隐藏动画 分为 'default' ( 缩小隐藏 ) 以及 'alive' (向下滚动隐藏)
fabItemAnimateString'default''default' / 'alive'打开关闭子菜单时过渡动画 分为 'default' (各自过渡) 'alive' (分裂过渡)
fabAliveAnimateBezierString''.16,1.01,.61,1.2''ease' / 'linear' / 'ease-in' / 'ease-out' / 'ease-in-out' / '.18,.89,.91,.17'子菜单列表在alive动画模式下的贝塞尔曲线 注:仅fabMenuAnimate为alive时生效
globalOptionsObject{spacing: 40, delay: 0.05}/每个fab-item的动画延迟和间距
  • delay: 菜单项淡入淡出的延迟差 为上一个菜单项加该延迟的延迟(单位 s) (fabItemAnimate为alive情况下该值会自动 除以 3)
  • spacing 每个菜单项的间距 单位 px

Methods

NameParamTypeDefaultDescription
onOffFabTrue / FalseBooleanTrue显示或者隐藏Fab

fab-item API

Props

OptionTypeDefaultParamsDescription
idxNumber0/下标 决定了位置以及clickItem事件返回的值(必须)
titleString''/菜单项标题 如果不填 将不显示title框
iconString'add'/Submenu item icon Supports [Material Icon] (https://material.io/icons/) and iconfont icon
colorString'#FFF'/支持css颜色标准 默认为白色 不填写该值将自动拥有一个值为0px 2px 8px #666的阴影
titleColorString#666/子菜单标题字体颜色
titleBgColorString#FFF/子菜单背景颜色

Event

NameParamDescription
clickItem{idx}当菜单项不为空且点击菜单项时,会返回该菜单项传入的idx值

注意

  • 由于safari浏览器的事件传递机制 window、document、body 不响应click事件** 如若出现点击空白区域无法自动关闭子菜单的情况 请检查html高度是否100% 如果没有100% 请单独给html标签设置css属性 min-height: 100% 项目对safari浏览器做了单独处理 在safari浏览器中将点击事件挂载在了HTML标签上,除iOS系统外的浏览器挂载在window上

LICENSE

MIT

Keywords

FAQs

Last updated on 08 Apr 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc