• 技术文章 >web前端 >js教程

    VUE组件的实例:VUE组件如何实现倒计时?

    不言不言2018-08-09 17:29:44原创1618
    本篇文章给大家带来的内容是关于VUE组件的实例:VUE组件如何实现倒计时?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    一、效果图:

    二、CSS代码

    .box{
        width: 300px;
        height: 100px;
        line-height: 100px;
        margin: 100px auto;
        background-color: #eee;
        text-align: center;
        font-size: 30px;
        color: #666;
    }.count-number{
        color: red;
        font-size: 30px;
        font-weight: bold;
    }

    三、HTML代码

    <p class="wrap">
        <countdown seconds="15" index="1"></countdown>
        <countdown seconds="30" index="2"></countdown></p>

    四、javascript代码

    // 倒计时组件
    Vue.component('countdown', {
        props: ['seconds', 'index'],
        data: () => {
             return {
                timerCount: 0
             }
         },
         mounted() {
             this.timing();
         },
         methods: {
             timing() {
                 let startTime = localStorage.getItem(`startTime${this.index}`);
                 let nowTime = new Date().getTime();
                 if(startTime) {
                      let surplus = this.seconds - parseInt((nowTime-startTime) / 1000, 10);
                      this.timerCount = surplus <= 0 ? 0 : surplus;
                 } else {
                      this.timerCount = this.seconds;
                      localStorage.setItem(`startTime${this.index}`, nowTime);
                 }
    
                 let timer = setInterval(() => {
                      if(this.timerCount > 0 && this.timerCount <= this.seconds) {
                          this.timerCount--;
                     } else {
                          localStorage.removeItem(`startTime${this.index}`);
                          clearInterval(timer);
                      }
                 }, 1000);
             }
        },
        template: `<div class="box">倒计时 <span class="count-number">{{timerCount < 10 ? '0' + timerCount : timerCount}}</span> 秒</div>`
    });
    
    // Vue实例
    new Vue({
        el: '.wrap'
    });

    相关推荐:

    JS中的原型机制:实现构造函数与其实例的继承与扩展

    Vue子组件与父组件之间的通信(附代码)

    以上就是VUE组件的实例:VUE组件如何实现倒计时?的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:VUE组件
    上一篇:JavaScript中Date的方法介绍及实例 下一篇:Vue中使用的几种样式的简单介绍(附代码)
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 聊聊Node.js path模块中的常用工具函数• JavaScript隐藏机制之垃圾回收知识总结• 手把手带你使用node开发一个命令行压缩工具• JavaScript总结之18种常用数组方法• node实战之开发一个mycli命令行工具
    1/1

    PHP中文网