Skip to content

MovableButton 可拖动按钮

此组件通常用于全局悬浮按钮。

基础使用

  • 按钮默认显示在右侧居中位置。
  • 默认可全方向拖动。
  • 默认大小为 45px * 45px
  • 通过 icon 属性设置按钮图标,默认为 __zhuye
  • 通过 text 属性设置按钮文字,默认为空。
vue
<hi-movable-button></hi-movable-button>

按钮位置

通过 position 属性设置按钮初始化位置,可选的值有:

  • left-top: 左上角;
  • left-center: 左侧居中;
  • left-bottom: 左下角;
  • center-top: 顶部居中;
  • cenetr-center: 中部居中;
  • center-bottom: 底部居中;
  • right-top: 右上角;
  • right-center: 右侧居中,默认值;
  • right-bottom: 右下角。
vue
<hi-movable-button position="left-top"></hi-movable-button>
<hi-movable-button position="left-center"></hi-movable-button>
<hi-movable-button position="left-bottom"></hi-movable-button>
<hi-movable-button position="center-top"></hi-movable-button>
<hi-movable-button position="center-center"></hi-movable-button>
<hi-movable-button position="center-bottom"></hi-movable-button>
<hi-movable-button position="right-top"></hi-movable-button>
<hi-movable-button position="right-center"></hi-movable-button>
<hi-movable-button position="right-bottom"></hi-movable-button>

提示

位置需在初始化时设置,虽然可以动态修改,但是动态修改后可拖动方向可能会失效。

按钮边框

通过 border 属性设置是否开启按钮边框。

  • 默认边框宽度为:1px
  • 默认边框颜色为:currentColor
  • 默认边框类型为:solid
vue
<hi-movable-button border></hi-movable-button>

按钮主题

该组件支持设置主题,通过 theme 属性设置。

vue
<hi-movable-button theme="primary"></hi-movable-button>
<hi-movable-button theme="success"></hi-movable-button>
<hi-movable-button theme="warning"></hi-movable-button>
<hi-movable-button theme="error"></hi-movable-button>
<hi-movable-button theme="info"></hi-movable-button>

按钮镂空

通过 plain 属性设置镂空按钮。
按钮设置为镂空后,按钮的背景会自动设置为 transparent,如果需要修改,可以通过 bg 属性设置。
同时按钮镂空时会默认显示边框。

vue
<hi-movable-button plain></hi-movable-button>
<hi-movable-button plain theme="primary"></hi-movable-button>

浅化背景

通过 tint 属性设置浅化背景。
浅化背景即是:为按钮的背景设置透明度,默认为 0.2 透明度。

vue
<hi-movable-button tint></hi-movable-button>
<hi-movable-button tint theme="primary"></hi-movable-button>

Props

属性名说明类型默认值可选值版本
hover指定按下去的样式类Stringhi-hover--
icon按钮图标String__zhuye--
text按钮文字String---
disabled是否禁用Booleanfalsetrue-
bg按钮背景String---
color按钮文字颜色String---
fontSize按钮文字大小String---
width按钮宽度String---
height按钮高度String---
radius按钮圆角String---
border是否显示按钮边框Booleanfalsetrue-
borderColor按钮边框颜色String---
borderWidth按钮边框宽度String---
iconColor按钮图标颜色String---
iconSize按钮图标大小String---
shadow按钮阴影String---
top按钮距离顶部距离String---
left按钮距离左侧距离String---
bottom按钮距离底部距离String---
right按钮距离右侧距离String---
theme按钮主题String-参考上方说明-
plain按钮是否镂空Booleanfalsetrue-
tint是否开启浅化背景Booleanfalsetrue-
tintOpacity浅化背景透明度[String, Number]0.2--
scaleArea当里面的 movable-view 设置为支持双指缩放时,设置此值可将缩放手势生效区域修改为整个 movable-areaBooleanfalse参考-
position按钮初始位置String参考上方说明--
directionmovable-view 的移动方向,属性值有 allverticalhorizontalnoneStringall参考-
inertiamovable-view 是否带有惯性Booleanfalse参考-
outOfBounds超过可移动区域后,movable-view 是否还可以移动Booleanfalse参考-
damping阻尼系数,用于控制 xy 改变时的动画和过界回弹的动画,值越大移动越快Number20参考-
friction摩擦系数,用于控制惯性滑动的动画,值越大摩擦力越大,滑动越快停止;必须大于 0,否则会被设置成默认值Number2参考-
scale是否支持双指缩放,默认缩放手势生效区域是在 movable-viewBooleanfalse参考-
scaleMin定义缩放倍数最小值Number1 / 0.5参考-
scaleMax定义缩放倍数最大值Number10参考-
scaleValue定义缩放倍数,支持小数Number1参考-
animation是否开启动画Booleantrue参考-

Event

事件名说明回调参数版本
click按钮点击事件--
change拖动过程中触发的事件参考-
scale缩放过程中触发的事件参考-

样式变量

组件提供了以下样式变量,可以在使用时设置这些变量来修改组件的样式。

变量名默认值版本
--hi-movable-button-container-width 100%-
--hi-movable-button-container-height100% / calc(100% - var(--window-top) - var(--window-bottom))-
--hi-movable-button-container-top0 / var(--window-top)-
--hi-movable-button-container-left0-
--hi-movable-button-container-z-indexvar(--hi-index-default)-
--hi-movable-button-container-backgroundtransparent-
--hi-movable-button-container-positionfixed-
--hi-movable-button-container-pointer-eventsnone-
--hi-movable-button-pointer-eventsall-
--hi-movable-button-width45px-
--hi-movable-button-height45px-
--hi-movable-button-leftauto / 10px / 50%-
--hi-movable-button-topauto / 10px / 50%-
--hi-movable-button-rightauto / 10px-
--hi-movable-button-bottomauto / 10px-
--hi-movable-button-backgroundvar(--hi-background-default)-
--hi-movable-button-border-radius50%-
--hi-movable-button-displayflex-
--hi-movable-button-flex-directioncolumn-
--hi-movable-button-align-itemscenter-
--hi-movable-button-justify-contentcenter-
--hi-movable-button-line-height1.25-
--hi-movable-button-colorinherit-
--hi-movable-button-font-size0.7em-
--hi-movable-button-box-shadownone-
--hi-movable-button-border-width0-
--hi-movable-button-border-stylesolid-
--hi-movable-button-border-colorcurrentColor-
--hi-movable-button-z-indexvar(--hi-index-default)-
--hi-movable-button-margin参考下方说明-
--hi-movable-button-icon-font-size24px-
--hi-movable-button-icon-colorinherit-
--hi-movable-button-background-opacity0.2-

--hi-movable-button-margin 可能的值:

  • 0
  • calc(-1 * var(--hi-movable-button-height)) 0 0 0
  • 0 0 0 calc(-1 * var(--hi-movable-button-width))
  • calc(-1 * var(--hi-movable-button-height)) 0 0 calc(-1 * var(--hi-movable-button-width))

基于 MIT 许可发布