设为首页收藏本站
天天打卡

 找回密码
 立即注册
搜索
查看: 84|回复: 17

canvas实现滑动验证的实现示例

[复制链接]

3

主题

59

回帖

185

积分

注册会员

积分
185
发表于 2024-4-20 10:29:30 | 显示全部楼层 |阅读模式
突然想到的方法,来试试吧
1.页面布局
  1. <canvas id="canva" width="500px" height="300px"></canvas>
复制代码
样式
  1. <style type="text/css">
  2.         *{
  3.             margin: 0;
  4.             padding: 0;
  5.         }
  6.         #canva{
  7.                 background: indianred;
  8.         }
  9. </style>
复制代码
JS
  1. <script type="text/javascript">
  2.     window.onload=function(){
  3.         var canva=document.getElementById('canva');
  4.         var ctx  =canva.getContext('2d');
  5.         var h=canva.height;     
  6.         var w=canva.width;
  7.         var rext={                          //定义验证块的属性
  8.             x:Math.random()*(w-50),
  9.             y:Math.random()*(h-50),
  10.         }
  11.         var hk={                           //滑块属性
  12.             x:'0',
  13.             y:''
  14.         }
  15.         Rect();                            //绘制验证块
  16.         Hk(0,rext.y);                      //绘制滑块

  17.         canva.addEventListener('click',function(){
  18.                 var ev=ev||event;
  19.                 var x=ev.clientX;
  20.                 var y=ev.clientY;
  21.                 if(x>=0 && x<=50 && y>=rext.y && y<=rext.y+50  ){//canvas内部监听
  22.                    canva.addEventListener('mousemove',function(ev){
  23.                         ev=ev||event;
  24.                         ctx.clearRect(hk.x,hk.y,50,50);   //清除滑块            
  25.                         hk.x=ev.clientX;   
  26.                         Hk(hk.x,rext.y);
  27.                         //绘制滑块
  28.                         var hk_x=ev.clientX;
  29.                         var yz_x=rext.x;
  30.                         (function(x,y){
  31.                             if(x>y && x<y+50){
  32.                                 console.log("验证成功");
  33.                             }
  34.                         })(hk_x,yz_x)      //判断验证的匿名函数
  35.                    })              

  36.                 }
  37.             })   //点击事件的处理

  38.         function Rect(){
  39.             ctx.fillStyle='whitesmoke';
  40.             ctx.fillRect(rext.x,rext.y,50,50);
  41.         }
  42.         function Hk(x,y){
  43.             hk.x=x;
  44.             hk.y=y;
  45.             ctx.fillRect(hk.x,hk.y,50,50);  
  46.         }   
  47.     }
  48. </script>
复制代码
目前基本的效果已经出来了,虽然验证的地方有点问题,不过整体的功能还是实现了,完结撒花,以后再慢慢完善~
到此这篇关于canvas实现滑动验证的实现示例的文章就介绍到这了,更多相关canvas滑动验证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

2

主题

40

回帖

126

积分

注册会员

积分
126
发表于 2024-5-9 20:33:06 | 显示全部楼层
我完全同意你的观点

0

主题

47

回帖

95

积分

注册会员

积分
95
发表于 2024-7-1 14:52:42 | 显示全部楼层
我们一起努力,共同解决问题吧。

2

主题

45

回帖

133

积分

注册会员

积分
133
发表于 2024-7-6 04:33:41 | 显示全部楼层
谢谢你分享这个信息

0

主题

37

回帖

75

积分

注册会员

积分
75
发表于 2024-7-12 11:56:54 | 显示全部楼层
非常感谢你的观点,让我受益良多!

1

主题

51

回帖

125

积分

注册会员

积分
125
发表于 2024-7-28 17:13:26 | 显示全部楼层
我想了解更多

1

主题

39

回帖

100

积分

注册会员

积分
100
发表于 2024-8-6 03:56:02 | 显示全部楼层
友善的讨论氛围是非常重要的。

3

主题

49

回帖

165

积分

注册会员

积分
165
发表于 2024-8-24 21:44:41 | 显示全部楼层
谢谢你分享这个信息
  • 打卡等级:无名新人
  • 打卡总天数:1
  • 打卡月天数:0
  • 打卡总奖励:3
  • 最近打卡:2024-04-30 20:51:41

0

主题

71

回帖

160

积分

注册会员

积分
160
发表于 2024-8-25 21:23:35 | 显示全部楼层
牛逼

1

主题

28

回帖

77

积分

注册会员

积分
77
发表于 2024-9-1 23:17:34 | 显示全部楼层
我不太确定,可能需要再确认一下。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|爱云论坛 - d.taiji888.cn - 技术学习 免费资源分享 ( 蜀ICP备2022010826号 )|天天打卡

GMT+8, 2024-11-15 08:57 , Processed in 0.302071 second(s), 46 queries .

Powered by i云网络 Licensed

© 2023-2028 正版授权

快速回复 返回顶部 返回列表