做一个发送短信的倒计时按钮(很常用)

效果预览:


不BB,上代码:

.btn-danger:hover {
    color: #fff;
    background-color: #c9302c;
    border-color: #ac2925;}
    .btn-danger {
    color: #fff;
    background-color: #d9534}
    .btn {
    display: inline-block;
    padding: 6px 12px;
    background-color: #C9302C;
    margin-bottom: 0;
    font-size: 14px;
    font-weight: normal;
    line-height: 1.42857143;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    -ms-touch-action: manipulation;
    touch-action: manipulation;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    background-image: none;
    border: 1px solid transparent;
    border-radius: 4px;}
    .btn:hover{
    color: #333;
    text-decoration: none;}
 <input onclick="sendmessage(this,60);" type="button" value="发送短信" class="btn btn-danger"/></p>
 function sendmessage(obj,second){
		if(sendmessage){
			countDown(obj,second)
		}
		else{
			alert("错误,虽然永远走不到这里!");
		}
    }
	function countDown(obj,second){
    // 如果秒数还是大于0,则表示倒计时还没结束
     if(second>=0){
          // 获取默认按钮上的文字
          if(typeof buttonDefaultValue === 'undefined' ){
            buttonDefaultValue =  obj.defaultValue;
        }
        // 按钮置为不可点击状态
        obj.disabled = true;            
        // 按钮里的内容呈现倒计时状态
        obj.value = buttonDefaultValue+'('+second+')';
        // 时间减一
        second--;
        // 一秒后重复执行
        setTimeout(function(){countDown(obj,second);},1000);
        // 否则,按钮重置为初始状态
        }else{
        // 按钮置未可点击状态
        obj.disabled = false;   
        // 按钮里的内容恢复初始状态
        obj.value = buttonDefaultValue;
       }   
    }

可能有人说,这个傻X,怎么写一个死判断,还写一个else

我解释一下,直接调coutDown是不是可以呢?当然是,但是有一个问题是,您做的是一个发送短信的功能,总不能一直发送页面吧,页面上需要调发送短信的接口,难道一直调接口??不理解的没关系,慢慢琢磨...

所以当您用到的这里的时候,会感谢我写的这个的。




猜你喜欢

转载自blog.csdn.net/qq_41485414/article/details/80137244