• 判断是否连续点击过快


    1.方法一,用数组方法,自己乱想的。但不知道有没有性能问题,因为数组的长度会加大

    function clicklikes(){
        var clickOriginBox = $(".visit_count_text1");
        var clickOrigin = clickOriginBox.find(".visit_good_btn2");
        var itemTarget = clickOriginBox.find("ul li");
        var arrAcount = [];
        var oldTime;
        var timeArr = [];
        clickOrigin.on("click",function(){
            oldTime = new Date().getTime();
            timeArr.push(oldTime);              //每次时间push入数组中,然后比较数组最后两个值的差
            var timeBucket = timeArr[timeArr.length-1] - timeArr[timeArr.length-2];         //时间差
            if(timeBucket > 1000){
                console.log("正常点击")
            }else{
                if(isNaN(timeBucket)){
                    console.log("第一次点击");
                }else{
                    console.log("你点击太快了")
                }
            }
        })
    }
    

    方法二,时间差,比较合理的方法

    function clicklikes(){
        var clickOriginBox = $(".visit_count_text1");
        var clickOrigin = clickOriginBox.find(".visit_good_btn2");
        var itemTarget = clickOriginBox.find("ul .li5");
        var count = 0;          //点击次数
        var firstTime = 0;      //第一次点击时间
        var secondTime = 0;     //第二次点击时间
        var timeBucket = 0;     //两次点击时间差
        var flag = true;        //判断是第几次点击的状态
    
        clickOrigin.on("click",moreClick);
    
        function moreClick(){
            var date = new Date();                                  //点击后首先获取当前时间
            var seconds = date.getTime();                           //获取毫秒数
            if(flag){                                               //前次点击
                firstTime = seconds;                                //前次点击时间
                flag = false;
            }else{
                secondTime = seconds;                               //时间赋给后次点击
                flag = true;
            }
    
            timeBucket = Math.abs(secondTime - firstTime);          //时间差
            // console.log(firstTime);
            // console.log(secondTime);
    
            if(secondTime == 0){                                    //如果是第一次点击,则执行以下代码
                count++;
                validClick(count)
            }else{
                if(timeBucket > 1000){                              //如果两次点击间隔大于5秒时;
                    count++;                                        //正常有效执行加1
                    validClick(count);
                }else{      
                    console.log("你他妈点击太快,赶去投胎啊!");  //如果两次点击间隔小于1秒,则执行以下代码
                }
            }
        }
    
        function validClick(num){
            itemTarget.find("i").eq(0).text(num);
            console.log("第" + count + "有效次点击!");
        }
    }
    

    方法三,设置相邻两次点击的时间,比如点击一次后,3秒后才再能点击

    function clicklikes(){
        var clickOriginBox = $(".visit_count_text1");
        var clickOrigin = clickOriginBox.find(".visit_good_btn2");
        var itemTarget = clickOriginBox.find(".li5");
        var count = 0;                                              //用来存储间隔时间
        var total = 0;                                              //有效点击次数
        var flag = null;                                            //用来存储定时器函数的返回值
    
        function done(){                                            //被定时器函数不断的调用,来对count进行递减。
            if(count == 0){                                         //如果count == 0,则停止定时器函数的执行
                clearInterval(flag)
                console.log("可以点击")
            }else{                                                  //如果不等0,则减1操作
                count = count - 1;
                console.log("还有"+ count + "秒才可以点击")
            }
        }
    
        clickOrigin.on("click",function(){
            clearInterval(flag);
            if(count == 0){
                count = 3;                                          //设置10s可点击一次
                itemTarget.find("i").eq(0).text(total++);
                flag = setInterval(done,1000);                      //点击完后又执行done()函数
            }else{                                                  //如果count不等于0,则
                clearInterval(flag);
                console.log("还需要" + count + "秒才能点击!")
                flag = setInterval(done,1000);
            }
        })
    }
    
  • 相关阅读:
    Alpha 冲刺 (1/10)
    软工实践 · 第七次作业
    福大软工 · 第八次作业(课堂实战)- 项目UML设计(团队)
    软工实践· 第六次作业
    软工实践作业五-结对作业二
    软工实践第四次作业
    软工实践第三次作业
    软工实践第二次作业
    SDN第一次上机作业
    SDN第一次作业——关于网络编程
  • 原文地址:https://www.cnblogs.com/alantao/p/7941933.html
Copyright © 2020-2023  润新知