小程序列表倒计时功能

作者: 不二很纯洁 | 来源:发表于2018-05-27 22:54 被阅读31次

    先看看效果

    效果图

    直接上代码

    js:
    Page({
        /**
         * 页面的初始数据
         */
        data: {
            listData: []
        },
    
        /**
         * 生命周期函数--监听页面加载
         */
        onLoad: function (options) {
            let list = [
                {
                    id: 1,
                    memberNickname: '列表1',
                    remainTime: 86400000
                },
                {
                    id: 2,
                    memberNickname: '列表2',
                    remainTime: 3226000
                },
                {
                    id: 3,
                    memberNickname: '列表3',
                    remainTime: 15000
                }
            ];
            this.setData({
                listData: list
            });
            this.setCountDown();
        },
    
        /**
         * 倒计时
         */
        setCountDown: function(){
            let time = 100;
            let { listData } = this.data;
            let list = listData.map((v, i) =>{
                if (v.remainTime <= 0) {
                    v.remainTime = 0;
                }
                let formatTime = this.getFormat(v.remainTime);
                v.remainTime -= time;
                v.countDown = `${formatTime.hh}:${formatTime.mm}:${formatTime.ss}.${parseInt(formatTime.ms / time)}`;
                return v;
            })
            this.setData({
                listData: list
            });
            setTimeout(this.setCountDown, time);
        },
    
        /**
         * 格式化时间
         */
        getFormat: function (msec){
            let ss = parseInt(msec / 1000);
            let ms = parseInt(msec % 1000);
            let mm = 0;
            let hh = 0;
            if (ss > 60) {
                mm = parseInt(ss / 60);
                ss = parseInt(ss % 60);
                if (mm > 60) {
                    hh = parseInt(mm / 60);
                    mm = parseInt(mm % 60);
                }
            }
            ss = ss > 9 ? ss : `0${ss}`;
            mm = mm > 9 ? mm : `0${mm}`;
            hh = hh > 9 ? hh : `0${hh}`;
            return { ms, ss, mm, hh };
        }
    })
    
    wxml:
    <view>
        <view class="flex_l_r_c" wx:for="{{listData}}" wx:key="id">
            <view>{{item.memberNickname}}</view>
            <view>{{item.countDown}}</view>
        </view>
    </view>
    

    相关文章

      网友评论

        本文标题:小程序列表倒计时功能

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