uView NumberBox 步进器

简介: uView NumberBox 步进器

该组件一般用于商城购物选择物品数量的场景

注意:该输入框只能输入大于或等于0的整数

#平台差异说明

App(vue) App(nvue) H5 小程序

#基本使用

通过v-model绑定value初始值,此值是双向绑定的,无需在回调中将返回的数值重新赋值给value

<template>
  <u-number-box v-model="value" @change="valChange"></u-number-box>
</template>
<script>
  export default {
    data() {
      return {
        value: 0
      }
    },
    methods: {
      valChange(e) {
        console.log('当前值为: ' + e.value)
      }
    }
  }
</script>

copy

#步长设置

  • 通过step属性设置每次点击增加或减少按钮时变化的值,默认为1,下面示例每次都会加2或者减2
<u-number-box :step="2"></u-number-box>

copy

#限制输入范围

通过minmax参数限制输的入值最小值和最大值

<u-number-box :min="1" :max="100"></u-number-box>

copy

#限制只能输入整数

通过integer限制输入类型

<u-number-box integer></u-number-box>

copy

#禁用

<!-- 通过设置`disabled`参数来禁用输入框,禁用状态下无法点击加减按钮或修改输入框的值 -->
<u-number-box :disabled="true"></u-number-box>
<!-- 禁用输入框 -->
<u-number-box :disabledInput="true"></u-number-box>
<!-- 禁用增加按钮 -->
<u-number-box :disablePlus="true"></u-number-box>
<!-- 禁用减少按钮 -->
<u-number-box :disableMinus="true"></u-number-box>
<!-- 禁用长按 -->
<u-number-box :longPress="false"></u-number-box>

copy

#固定小数位数

通过step设置步进长度,decimal-length设置显示小数位数

<u-number-box step="0.25" decimal-length="1" ></u-number-box>

copy

#异步变更

通过asyncChange设置异步变更,开启后需要手动控制输入值 (默认 false )

<template>
    <u-number-box v-model="value" :asyncChange="true" @change="onChange"></u-number-box>
</template>
<script>
export default {
    data(){
        return {
            value:1
        }
    },
    methods:{
        onChange(e){
            setTimeout(() => {
                this.value = this.value + 1;
            }, 3000)
        }
    }
}
</script>

copy

#自定义颜色和大小

  • 通过button-size参数设置按钮大小
  • 通过icon-style参数设置加减按钮图标的样式
<u-number-box 
    button-size="36"
    color="#ffffff"
    bgColor="#2979ff"
    iconStyle="color: #fff"
></u-number-box>

copy

#自定义 slot

<template>
    <u-number-box v-model="value">
        <view
            slot="minus"
            class="minus"
        >
            <u-icon
                name="minus"
                size="12"
            ></u-icon>
        </view>
        <text
            slot="input"
            style="width: 50px;text-align: center;"
            class="input"
        >{{value}}</text>
        <view
            slot="plus"
            class="plus"
        >
            <u-icon
                name="plus"
                color="#FFFFFF"
                size="12"
            ></u-icon>
        </view>
    </u-number-box>
</template>
<script>
export default {
    data(){
        return {
            value:1
        }
    }
}
</script>
<style lang="scss">
  .minus {
    width: 22px;
    height: 22px;
    border-width: 1px;
    border-color: #E6E6E6;
    border-style: solid;
    border-top-left-radius: 100px;
    border-top-right-radius: 100px;
    border-bottom-left-radius: 100px;
    border-bottom-right-radius: 100px;
    @include flex;
    justify-content: center;
    align-items: center;
  }
  .input {
    padding: 0 10px;
  }
  .plus {
    width: 22px;
    height: 22px;
    background-color: #FF0000;
    border-radius: 50%;
    /* #ifndef APP-NVUE */
    display: flex;
    /* #endif */
    justify-content: center;
    align-items: center;
  }
</style>
相关文章
|
前端开发 JavaScript
【笔记】react 图片预览组件—— react-zmage(放大、旋转)
react 图片预览组件—— react-zmage(放大、旋转)
1340 0
|
4月前
Vue2竖向文字滚动
这是一个基于Vue3的文字滚动组件(TextScroll),支持自定义滚动文字数组、滚动间隔时间、展示宽度及高度等属性。该组件通过VerticalTextSlider.vue实现,提供了平滑过渡动画,并允许鼠标悬停时暂停滚动。适用于多种场景下的文字轮播需求。
Vue2竖向文字滚动
|
2月前
|
JavaScript
|
4月前
|
JavaScript
Vue3数值动画(NumberAnimation)
该文档介绍了一个基于 Vue 的数值动画组件 `NumberAnimation`,提供了丰富的配置选项,如起始值、目标值、动画时长等,并支持自定义前缀、后缀及样式。通过简单的方法和事件,可以轻松控制动画的播放与停止。
142 0
Vue3数值动画(NumberAnimation)
|
4月前
|
JavaScript
Vue多图组合走马灯
这篇文章介绍了如何在Vue框架中创建一个多图组合的走马灯组件,允许自定义滑动间隔和图片区域宽度,以展示多个图片。
Vue多图组合走马灯
|
5月前
|
JavaScript
vue 滑动拼图验证
vue 滑动拼图验证
62 1
vue 滑动拼图验证
|
5月前
|
JavaScript
vue 半场动画【实战范例】购物时小球弧线飞落
vue 半场动画【实战范例】购物时小球弧线飞落
30 0
|
7月前
|
移动开发 小程序 API
uniapp中uview组件库中丰富的LineProgress 线形进度条 的使用方法
uniapp中uview组件库中丰富的LineProgress 线形进度条 的使用方法
535 1
|
7月前
|
移动开发 JavaScript 小程序
uView CountTo 数字滚动
uView CountTo 数字滚动
57 2