小程序条形倒计时动画

作者: 谭瞎 | 来源:发表于2018-04-27 16:48 被阅读76次

一、效果图如下:

process.gif

二、wxml

<view class='headpiece-time flex-row'>
    <text class='headpiece-txt'>倒计时:</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

/**
     * 获取系统信息
     */
    getSystemInfo: function () {
        return new Promise((a, b) => {
            wx.getSystemInfo({
                success: function (res) {
                    a(res)
                },
                fail: function (res) {
                    b(res)
                }
            })
        })
    },
    /**
     * 进度条动画
     */
    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();
                    };
                })
            })();

        });
    },

相关文章

  • 小程序条形倒计时动画

    一、效果图如下: 二、wxml 三、wxss 四、index.js 作者:谭瞎链接:小程序条形倒计时动画-教程-小...

  • 小程序条形倒计时动画

    一、效果图如下: 二、wxml 三、wxss 四、index.js

  • iOS条形码动画

    WeiXinBarCodeImitate 是仿微信支付条形码的切换动画,包含条形码的生成、截图、旋转动画。gith...

  • python条形竞赛图

    看到同事用tableau做了条形竞赛图,想用python实现一下 什么是条形图竞赛? 条形图竞赛是一系列动画的条形...

  • 小程序 动画

    一、过渡、动画、转换间的总结 对应链接手动触发-->改变属性 + transition属性说明=css过渡cs...

  • 小程序动画

    基础:transform属性基础使用[https://www.runoob.com/cssref/css3-pr-...

  • 小程序:动画

    2022-04-08 animation文档[https://www.w3school.com.cn/cssref...

  • 小程序动画

    效果需求 1 .先向上,然后向左,一个插入的效果2 .向上有回弹 实现帧动画 this.animate 1 .缺点...

  • 微信小程序创建动画

    微信小程序创建动画 本文说下微信小程序的动画创建先看效果图 [video(video-ahQoAtNe-15889...

  • 小程序动画创建及动画结束的监听事件

    小程序动画创建 绑定动画数据 设置动画 监听动画事件(开始,结束) 动画执行过程中使用 bindtransitio...

网友评论

    本文标题:小程序条形倒计时动画

    本文链接:https://www.haomeiwen.com/subject/gogaqftx.html