<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了微信小程式實現數位捲動效果的具體程式碼,供大家參考,具體內容如下
1、為了實現數位的無限捲動效果,每個數位框的內部,其實包含了兩組0~9的view,每個View的高度都一樣
2、數位框內使用絕對定位,通過調整top位置,顯示出指定的數位
3、使用transtion動畫,top發生變化時就會捲動,然後通過指定動畫的delay、duration,使數位之間延時動畫
js檔案
// components/scroll-number/index.js Component({ externalClasses: ['container-class', 'item-class', 'dot-class'], properties: { value: { type: String, value: '' }, /** 一次捲動耗時 單位ms */ duration: { type: Number, value: 1600 }, /** 每個數位之間的延遲捲動 */ delay: { type: Number, value: 200 } }, data: { valArr: [], aniArr: [], // 動畫列表,和valArr對應 numArr: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], // 所有數位 itemHeight: 0 // 數位項的高度 }, observers: { value: function (newVal) { // 監聽value變化,格式化為valArr let valArr = [] if (newVal) { valArr = newVal.split('').map(o => { return { val: o, isNaN: isNaN(o)} }) } this.setData({ valArr: valArr }) this.getNumberHeight() } }, methods: { /** 計算數位高度 */ getNumberHeight() { if (this.data.itemHeight > 0) { this.startScrollAni() return } const query = this.createSelectorQuery() query.select('.number-item').boundingClientRect() query.exec((res) => { this.setData({ itemHeight: res[0].height }) this.startScrollAni() }) }, /** 開始捲動動畫 */ startScrollAni() { if (this.data.itemHeight <= 0) return const aniArr = [] this.data.valArr.forEach((item, index) => { if(!item.isNaN) { aniArr.push(`transition-delay: ${this.data.delay * index}ms; top: ${-this.data.itemHeight * (this.data.numArr[parseInt(item.val)] + 10)}px;`) } else { aniArr.push(null) } }) this.setData({ aniArr: aniArr }) } } })
wxml檔案
<!--components/scroll-number/index.wxml--> <view class="scroll-number container-class"> <block wx:for="{{valArr}}" wx:key="index"> <view wx:if="{{item.isNaN}}" class="scroll-number-item number-dot dot-class">{{item.val}}</view> <view wx:else class="scroll-number-item number-item item-class"> <view class="scroll-ani" style="transition-duration: {{duration}}ms; {{aniArr[index]}}"> <view wx:for="{{numArr}}" wx:for-item="num" wx:for-index="idx" wx:key="idx" class="num{{num}}">{{num}}</view> <view wx:for="{{numArr}}" wx:for-item="num" wx:for-index="idx" wx:key="idx" class="num{{num}}">{{num}}</view> </view> </view> </block> </view>
wxss檔案
/* components/scroll-number/index.wxss */ .scroll-number { display: flex; align-items: flex-end; } .scroll-number-item { color: #0079FE; font-size: 48rpx; font-weight: bold; margin: 0 24rpx; font-family: Microsoft YaHei; } .number-item { background-color: rgba(0, 121, 254, 0.2); border-radius: 8rpx; width: 56rpx; height: 72rpx; line-height: 72rpx; overflow: hidden; text-align: center; position: relative; } .number-dot { margin: 0 12rpx; } .scroll-ani { position: absolute; top: 0; left: 0; width: 100%; height: 100%; transition: all 2s ease-in-out 0s; }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45