实例|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;

}



目录
相关文章
|
3月前
扩展鸿蒙ArkUI日期组件
扩展鸿蒙ArkUI日期组件
43 1
|
5月前
|
容器 iOS开发 Linux
震惊!Uno Platform 响应式 UI 构建秘籍大公开!从布局容器到自适应设计,带你轻松打造跨平台完美界面
【8月更文挑战第31天】Uno Platform 是一款强大的跨平台应用开发框架,支持 Web、桌面(Windows、macOS、Linux)及移动(iOS、Android)等平台,仅需单一代码库。本文分享了四个构建响应式用户界面的最佳实践:利用布局容器(如 Grid)适配不同屏幕尺寸;采用自适应布局调整 UI;使用媒体查询定制样式;遵循响应式设计原则确保 UI 元素自适应调整。通过这些方法,开发者可以为用户提供一致且优秀的多设备体验。
221 0
|
8月前
|
小程序 JavaScript
【微信小程序】之自定义四宫格(不用mp-grids扩展组件实现,这个组件太难用了)
【微信小程序】之自定义四宫格(不用mp-grids扩展组件实现,这个组件太难用了)
|
JavaScript 前端开发 开发者
拓展-Vue 中实例的生命周期1(2)|学习笔记
快速学习拓展-Vue 中实例的生命周期1(2)
拓展-Vue 中实例的生命周期1(2)|学习笔记
|
JavaScript 前端开发 小程序
APICloud AVM框架 纵向滚动通知栏组件
用于循环播放展示一组消息通知,实现了纵向滚动。
|
JavaScript 前端开发 开发者
拓展-Vue 中实例的生命周期1(1)|学习笔记
快速学习拓展-Vue 中实例的生命周期1(1)
|
缓存 JavaScript 前端开发
自制 移动端 纯原生 Slider滑动插件
在Google搜关键字“slider”或“swiper”能找到一大堆相关插件,自己造轮子是为了能更好的理解其中的原理。
|
JavaScript 前端开发
使用APICloud AVM框架封装app日历组件
AVM是APICloud推出的一个跨端的高性能 JavaScript框架,更趋近于原生的编程体验,它提供简洁的模型来分离应用的用户界面、业务逻辑和数据模型,适合高度定制化的项目。
210 0
使用APICloud AVM框架封装app日历组件
|
前端开发
实例|APICloud AVM框架封装滑动单元格组件
滑动单元格组件原理是主题部分把按钮进行遮挡,按钮通过绝对定位,定位在最右边,通过监听触摸事件(touch),判断滑动的方向和计算滑动的距离以此来判定显示和隐藏按钮。
181 0
|
前端开发
使用APICloud AVM多端组件快速实现app中的搜索功能
很多app中都有搜索功能的需求,本文介绍怎么使用APICloud AVM多端组件快速实现搜索功能。
162 0
使用APICloud AVM多端组件快速实现app中的搜索功能