实例|APICloud AVM框架打造数字滚动组件

简介: 数字滚动组件,用于数字的动态效果展示。今天用APICloud AVM框架打造数字滚动组件。

数字滚动组件,用于数字的动态效果展示。今天用APICloud AVM框架打造数字滚动组件。


组件中用到的核心功能点是,background-position属性设置背景图像的起始位置。每个数字占位的背景图片是一个0-9数字组成的图片,通过随机产生不同的图片其实位置来展示不同的数字。


通过延迟产生每次的位置,来控制数字切换的频率,这个是可以自定义的。


可自定义数字其实位置,靠左,靠右,居中。


可自定义展示的数字个数。


组件文件

count-up.stml


<template>

<view class="easy-count-up_container">

<view class="easy-count-up_img" :style="justifyStyle">

<view class="easy-count-up_img-item" :style="item" v-for="item in roundStyle">

</view>

</view>

</view>

</template>

<script>

export default {

name: 'easy-count-up',

props:{

during:Number,

customNum:Number,

justify:String

},

install(){

for (let index = 0; index < this.props.customNum; index++) {

this.data.roundStyle[index]='background-position: 0px 0px;';

}

if(this.props.justify=='left'){

this.data.justifyStyle='justify-content: flex-start;';

}

else if(this.props.justify=='right'){

this.data.justifyStyle='justify-content: flex-end;';

}

},

installed(){

let timer = null;

timer = setInterval(() => {

for (let index = 0; index < this.data.roundStyle.length; index++) {

this.data.roundStyle[index]='background-position: 0px -'+ Math.floor( Math.random()*10 )*58 +'px;';

}

},this.props.during?this.props.during:5000)

},

data() {

return{

customNumber:0,

roundStyle:[],

justifyStyle:'justify-content: center;'

}

},

methods: {

 

}

}

</script>

<style>

.easy-count-up_container{

width: 100%;

padding: 5px;

background-color: #ffffff;

}

.easy-count-up_img{

height: 47px;

flex-flow: row nowrap;

}

.easy-count-up_img-item{

width: 33px;

height: 47px;

margin-right: 5px;

background-image: url(https://img10.360buyimg.com/imagetools/jfs/t1/133024/3/2251/2646/5ee7549aE8dc02d7e/de6901b6c72db396.png);

transition: all 800ms ease 0s;

background-repeat: no-repeat;

}

</style>

组件使用

demo-count-up.stml


<template>

<view class="page">

<safe-area></safe-area>

<text>随机抽取{customNum}位数的号码牌</text>

<easy-count-up

:during="during"

:customNum="customNum"

:justify="justify"

></easy-count-up>

<text>随机抽取{customNum1}位数的号码牌</text>

<easy-count-up

:during="during1"

:customNum="customNum1"

:justify="justify1"

></easy-count-up>

<text>随机抽取{customNum2}位数的号码牌</text>

<easy-count-up

:customNum="customNum2"

:justify="justify2"

></easy-count-up>

</view>

</template>

<script>

import '../../components/easy-count-up.stml'

export default {

name: 'demo-easy-count-up',

apiready(){//like created

 

},

data() {

return{

during:2000,//数字滚动一次的时间 单位毫秒

customNum:6,//数字的个数

justify:'center',//号码数字位置 center,left,right

during1:5000,//数字滚动一次的时间 单位毫秒

customNum1:3,//数字的个数

justify1:'left',//号码数字位置 center,left,right

 

during2:3000,//数字滚动一次的时间 单位毫秒

customNum2:5,//数字的个数

justify2:'right',//号码数字位置 center,left,right

}

},

methods: {

}

}

</script>

<style>

.page {

height: 100%;

background-color: #f0f0f0;

justify-content: flex-start;

align-items: center;

}



目录
相关文章
|
2天前
|
开发者
鸿蒙next版开发:ArkTS组件通用属性(Popup控制)
在HarmonyOS 5.0中,ArkTS提供了灵活的Popup控制属性,允许开发者创建和管理弹出窗口,用于显示额外信息、提示、表单等,增强用户交互体验。本文详解了Popup控制的通用属性,并提供了示例代码。通过bindPopup方法,可以将弹出窗口绑定到组件上,支持多种用途,如显示额外信息、表单提交和交互反馈。
57 1
|
2天前
|
开发者 UED
鸿蒙next版开发:ArkTS组件通用属性(悬浮态效果)
在HarmonyOS 5.0中,ArkTS引入了悬浮态效果的控制属性,使开发者能为组件添加鼠标悬浮时的视觉反馈,增强用户体验。本文详解了hoverEffect属性及其常见效果(Auto、Scale、Highlight、None),并提供了示例代码,展示了如何为按钮设置悬浮效果。通过这些属性,开发者可以实现更生动和互动的界面。
57 1
|
1月前
扩展鸿蒙ArkUI日期组件
扩展鸿蒙ArkUI日期组件
32 1
|
3月前
|
编解码 前端开发 vr&ar
从零开始的PICO教程(4)--- UI界面绘制与响应事件
这篇文章是PICO开发系列教程的第四部分,主要介绍了如何在PICO 4 VR环境中创建UI界面,包括Canvas和Panel的配置、UI元素的绘制、以及Button和Slider的事件响应绑定,并通过示例展示了数字增减和滑块功能的具体实现。
从零开始的PICO教程(4)--- UI界面绘制与响应事件
|
6月前
|
移动开发 小程序 API
uniapp中uview组件库丰富的CountTo 数字滚动使用方法
uniapp中uview组件库丰富的CountTo 数字滚动使用方法
77 2
|
6月前
【实用】一个移动端简单的UI弹窗组件,虽算不上高大上,但至少耐看
【实用】一个移动端简单的UI弹窗组件,虽算不上高大上,但至少耐看
|
6月前
|
缓存 前端开发 JavaScript
【亮剑】在React中如何通过点击事件控制组件显示与隐藏,包括基础概念和高级应用
【4月更文挑战第30天】本文介绍了在React中如何通过点击事件控制组件显示与隐藏,包括基础概念和高级应用。使用`useState`钩子和Context API可实现状态驱动的条件渲染,通过CSS类控制组件样式,或利用React Portals在DOM不同位置渲染。性能优化应注意避免不必要的渲染、合理使用Keys、优化事件处理器、使用Memoization及清理资源。测试和验证确保逻辑正确性,以构建动态用户界面并提升应用性能。
591 0
|
6月前
|
小程序 JavaScript
【微信小程序】之自定义四宫格(不用mp-grids扩展组件实现,这个组件太难用了)
【微信小程序】之自定义四宫格(不用mp-grids扩展组件实现,这个组件太难用了)
|
12月前
|
小程序 开发者
wepy框架-触摸内容滑动组件使用步骤
wepy框架-触摸内容滑动组件使用步骤
45 0
|
JavaScript 前端开发 小程序
APICloud AVM框架 纵向滚动通知栏组件
用于循环播放展示一组消息通知,实现了纵向滚动。
APICloud AVM框架 纵向滚动通知栏组件