本文介绍如何利用 JavaScript 实现限制按钮点击次数及限时重置的功能。通过计数变量控制点击上限,结合 setInterval 设置冷却时间,并在达到限制时移除点击事件、改变样式。同时涵盖 setTimeout 与 setInterval 的区别及防止文字选中的 CSS 技巧。
限时限次数点击按钮
核心思路:引入一个计数变量,每次点击时该变量自增。在点击处理函数内部,判断计数是否达到设定值,若达到则禁用按钮或重置状态,并配合定时器实现限时恢复。
具体实现步骤如下。
HTML 结构部分。
<body>
<div class="a123">
<a class="btn bg1" onclick="doIt()">123123</a>
<br>
<div class="show"></div>
</div>
</body>CSS 样式定义部分。
.btn{
display: inline-block;
width: 80px;
height: 40px;
line-height: 40px;
border-radius: 5px;
cursor: pointer;
}
.bg1{
background-color: rgb(21, 93, 248);
color: white;
.bg2{
background-color: rgb(53, 53, 53);
.a123{
width: 500px;
height: 300px;
border: 1px solid pink;
margin: 200px auto;
padding: 30px;
text-align: center;JavaScript 逻辑代码部分。
<script>
//计数变量
var count = 0;
//3秒钟重置一次计数 并恢复按钮
var resetC = window.setInterval(function(){
//恢复计数 恢复点击事件
count = 0;
$('.btn').attr('onclick','doIt()');
//恢复背景颜色
$('.btn').addClass('bg1');
$('.btn').removeClass('bg2');
},1000*10);
//点击事件
function doIt(){
//点一次 计数加一
count += 1;
//判断计数 大于2 就
if(count >= 2){
//移除 点击函数
$('.btn').removeAttr('onclick');
//更换背景CSS
$('.btn').addClass('bg2');
$('.btn').removeClass('bg1');
}
//将计数显示出来
$('.show').text(count);
}
</script>技术要点提示。
关于定时函数的使用。
单次定时任务使用 setTimeout(),适用于只需执行一次的场景。
var timeOut = window.setTimeout(function(){
//里面放定时任务
},1000);
//1000 是指时间,即1000ms循环定时任务使用 setInterval(),必须配合 clearInterval() 来清除正在运行的定时任务,否则会导致内存泄漏或逻辑错误。
var resetC = window.setInterval(function(){
//里面放定时任务
},1000);
/*
1000 是指时间,即1000ms
这个定时任务,每隔1s就会触发一次。
如果要清除,使用clearInterval()函数
*/
window.clearInterval(resetC);禁止用户选中页面文字。
当使用 <a> 标签作为点击触发元素时,若用户频繁快速点击,浏览器默认行为会导致文字被选中,影响视觉体验。
可通过 CSS 代码实现禁止选中的效果。
body{
-moz-user-select: none; /*火狐*/
-webkit-user-select: none; /*webkit浏览器*/
-ms-user-select: none; /*IE10*/
-khtml-user-select: none; /*早期浏览器*/
user-select: none;
}以上就是关于 JS 实现限时限次数点击按钮的完整介绍,更多相关 JS 点击按钮内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!