小程序條形倒計(jì)時(shí)動(dòng)畫實(shí)現(xiàn)案例
2018-05-18|HiShop
導(dǎo)讀:本篇文章主要為大家詳細(xì)介紹了小程序條形倒計(jì)時(shí)動(dòng)畫的實(shí)現(xiàn)案例,非常簡(jiǎn)單,大家可以嘗試一下。
...
本篇文章主要為大家詳細(xì)介紹了小程序條形倒計(jì)時(shí)動(dòng)畫的實(shí)現(xiàn)案例,非常簡(jiǎn)單,大家可以嘗試一下。
一、效果圖如下:
二、wxml
- <view class='headpiece-time flex-row'>
- <text class='headpiece-txt'>倒計(jì)時(shí):</text>
- <view class='headpiece-process'>
- <view class='headpiece-process-inner' style="width:{{width}}%"></view>
- </view>
- <text class='headpiece-num'>{{t}}</text>
- </view>
三、wxss
- .headpiece-num {
- position: absolute;
- top: -3rpx;
- right: -35rpx;
- width: 62rpx;
- height: 100%;
- text-align: center;
- }
- .headpiece-time {
- position: relative;
- width: 305rpx;
- }
- .headpiece-process {
- position: relative;
- width: 138rpx;
- height: 14rpx;
- margin-right: 14rpx;
- border: 4rpx solid #000;
- overflow: hidden;
- background: #fff4b2;
- }
- .headpiece-process-inner {
- position: absolute;
- top: 0rpx;
- left: 0rpx;
- background: #f74242;
- height: 100%;
- transition: all 0.3s ease-out;
- }
四、index.js
- /**
- * 獲取系統(tǒng)信息
- */
- getSystemInfo: function () {
- return new Promise((a, b) => {
- wx.getSystemInfo({
- success: function (res) {
- a(res)
- },
- fail: function (res) {
- b(res)
- }
- })
- })
- },
- /**
- * 進(jìn)度條動(dòng)畫
- */
- countdown: function () {
- const requestAnimationFrame = callback => {
- return setTimeout(callback, 1000 / 60);
- }, cancelAnimationFrame = id => {
- clearTimeout(id);
- };
- this.getSystemInfo().then(v => {
- let maxtime = this.data.maxtime,
- width = this.data.width,
- sTime = +new Date,
- _ts = this,
- temp,
- animate;
- (animate = () => {
- temp = requestAnimationFrame(() => {
- let time = maxtime * 1000,
- currentTime = +new Date,
- schedule = 1 - (currentTime - sTime) / time,
- schedule_1 = schedule <= 0 ? 0 : schedule,
- width = parseInt(schedule_1 * 100),
- t = parseInt((this.data.maxtime) * schedule_1)+1;
- _ts.setData({
- width: width,
- t:t
- });
- if (schedule <= 0) {
- cancelAnimationFrame(temp);
- _ts.setData({
- width: width,
- t: 0
- });
- return;
- } else {
- animate();
- };
- })
- })();
- });
- },
您可能感興趣:小程序開(kāi)發(fā)