zoukankan      html  css  js  c++  java
  • vue-自定义指令实现发送验证码倒计时功能

    vue拥用很多强大的指令,但有些逻辑没有提供,所以vue提供了directive自定义指令由开发者任意扩展,本文自定义一个发送验证码倒计时功能的指令,点击一次在倒计时结束之前无法进行点击,自定义倒计时初始数值和结束之后的文字

    一、案例效果图如下:

    二、代码解析

    1、既然自定义指令,就意味着可以传参进行控制,不传参默认为60秒

    2、定义data,指定倒计时结束后展示的文字

    3、自定义指令内容

    三、附上所有代码

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            button{
                 100px;
                margin-bottom: 20px;
                margin-top: 20px;
                cursor: pointer;
                height: 40px;
                font-size: 14px;
            }
            #box{
                padding: 5px 10px;
                background-color: rgb(200, 224, 223);
                 100px;
                text-align: center;
                cursor: pointer;
            }
        </style>
    </head>
    
    <body>
        <div id="app">
            <button v-btn:[7]="msg">发送验证码</button>
            <div id="box" v-btn="info">发送验证码</div>
            <button v-btn:[10]="info">发送验证码</button>
        </div>
    </body>**
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        Vue.directive('btn', {
            inserted(el, binding) {
                console.log(binding)
                var flag = false;
                el.onclick = function () {
                    if (flag) return;
                    flag = true;
                    var i = binding.arg || 60;
                    el.innerHTML = i + 's';
                    var t = setInterval(() => {
                        if (i < 2) {
                            clearInterval(t);
                            flag = false;
                            el.innerHTML = binding.value;
                            return
                        };
                        i--;
                        el.innerHTML = i + 's';**
                    }, 1000)
                }
            }
        })
        new Vue({**
            el: '#app',
            data: {
                info:'发送验证码',
                msg:'发送验证码'
            }
        })
    </script>
    
    </html>
    
  • 相关阅读:
    获取一组radio按钮选中的值Value
    三相异步电动机过载保护及报警PLC控制
    2014年天津市第一批科技计划项目
    USB HID报告及报告描述符简介
    Log Explorer使用说明
    SQL日志文件的作用
    STM32 USB数据接收与数据发送程序流程分析
    多少人没熬过那三厘米!
    构建区域综合交通枢纽 京津冀将形成“一张图”
    Altium Designer下Gerber转PCB的方法(转)
  • 原文地址:https://www.cnblogs.com/piaoyi1997/p/13376972.html
Copyright © 2011-2022 走看看