更新记录

0.0.1(2023-07-06)

  • 初版,可能存在BUG

平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.1.0 app-vue × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × ×

lime-rolling-text 翻滚文本

  • 基于uniapp vue3实现的文本翻滚动效,可以翻滚数字和其他类型文本。
  • 目前为初版,只在H5和微信小程序上测试过

代码演示

基础用法

<l-rolling-text
  :start-num="0"
  :target-num="123"
  :duration="2"
  :auto-start="false"
  direction="down"
/>

设置翻滚方向

可以通过 direction 属性设置数字的翻滚方向。up 表示向上翻滚。

<l-rolling-text
  :start-num="0"
  :target-num="432"
  :duration="2"
  :auto-start="false"
  direction="up"
/>

设置各数位停止顺序

可以通过 stop-order 属性设置动画各个数位的停止先后顺序。默认先停止高位。设置 rtl 可以先从个位停止。

<l-rolling-text
  :start-num="0"
  :target-num="54321"
  :duration="2"
  :auto-start="false"
  stop-order="rtl"
  direction="up"
/>

翻转非数字内容

你可以使用 text-list 属性设置非数字内容的翻转。组件会从数组的第一项翻转到最后一项,请确保数组长度大于等于 2,以及每一项的长度一致。

<l-rolling-text
  :text-list="textList"
  :duration="1"
  :auto-start="false"
  stop-order="rtl"
  direction="up"
/>
import { ref } from 'vue';

export default {
  setup() {
    const textList = ref([
      'aaaaa',
      'bbbbb',
      'ccccc',
      'ddddd',
      'eeeee',
      'fffff',
      'ggggg',
    ]);
    return { textList };
  },
};

自定义样式

<l-rolling-text
  class="my-rolling-text"
  :start-num="12345"
  :target-num="54321"
  :duration="2"
  stop-order="rtl"
  direction="up"
  :height="54"
/>
.my-rolling-text {
  --l-rolling-text-background: #1989fa;
  --l-rolling-text-color: white;
  --l-rolling-text-font-size: 24px;
  --l-rolling-text-gap: 6px;
  --l-rolling-text-item-border-radius: 5px;
  --l-rolling-text-item-width: 40px;
}

手动控制

通过 ref 获取到组件实例后,可以调用 startreset 方法。

<l-rolling-text
  ref="rollingTextRef"
  :start-num="0"
  :target-num="54321"
  :duration="2"
  :auto-start="false"
  stop-order="rtl"
  direction="up"
/>

<button @click="start">开始</button>
<button @click="reset">重置</button>
import { ref } from 'vue';

export default {
  setup() {
    const rollingTextRef = ref(null);
    const start = () => {
      rollingTextRef.value.start();
    };
    const reset = () => {
      rollingTextRef.value.reset();
    };
    return { rollingTextRef, start, reset };
  },
};

查看示例

  • 导入后直接使用这个标签查看演示效果,
    <!-- // 代码位于 uni_modules/lime-rolling-text/compoents/lime-rolling-text -->
    <lime-rolling-text />

插件标签

  • 默认 l-rolling-text 为 component
  • 默认 lime-rolling-text 为 demo

关于vue2的使用方式

  • 插件使用了composition-api, 如果你希望在vue2中使用请按官方的教程vue-composition-api配置
  • 关键代码是: 在main.js中 在vue2部分加上这一段即可.
    // vue2
    import Vue from 'vue'
    import VueCompositionAPI from '@vue/composition-api'
    Vue.use(VueCompositionAPI)

另外插件也用到了TS,vue2可能会遇过官方的TS版本过低的问题,找到HX目录下的compile-typescript目录

// \HBuilderX\plugins\compile-typescript
yarn add typescript -D
- or - 
npm install typescript -D

API

Props

参数 说明 类型 默认值
start-num 开始数值 number 0
target-num 目标数值 number -
text-list 内容数组,用于翻转非数字内容 string[] []
duration 动画时长,单位为秒 number 2
direction 文本翻滚方向,值为 downup string down
auto-start 是否自动开始动画 boolean true
stop-order 各个数位动画停止先后顺序,值为 ltrrtl string ltr
height 数位高度 number,string 40

方法

通过 ref 可以获取到 RollingText 实例并调用实例方法。

方法名 说明 参数 返回值
start 开始动画 - -
reset 重置动画 - -

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式

名称 默认值 描述
--l-rolling-text-background inherit 单个数位背景色
--l-rolling-text-color - 数字颜色
--l-rolling-text-font-size - 字体大小
--l-rolling-text-gap 0px 数位之间的间隔
--l-rolling-text-item-width 15px 单个数位宽度
--l-rolling-text-item-border-radius 0px 单个数位边框圆角

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问