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


Posted in HTML / CSS onAugust 11, 2020

突然想到的方法,来试试吧

1.页面布局

<canvas id="canva" width="500px" height="300px"></canvas>

样式

<style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        #canva{
                background: indianred;
        }
</style>

JS

<script type="text/javascript">
    window.onload=function(){
        var canva=document.getElementById('canva');
        var ctx  =canva.getContext('2d');
        var h=canva.height;     
        var w=canva.width;
        var rext={                          //定义验证块的属性
            x:Math.random()*(w-50),
            y:Math.random()*(h-50),
        }
        var hk={                           //滑块属性
            x:'0',
            y:''
        }
        Rect();                            //绘制验证块
        Hk(0,rext.y);                      //绘制滑块

        canva.addEventListener('click',function(){
                var ev=ev||event;
                var x=ev.clientX;
                var y=ev.clientY;
                if(x>=0 && x<=50 && y>=rext.y && y<=rext.y+50  ){//canvas内部监听
                   canva.addEventListener('mousemove',function(ev){
                        ev=ev||event;
                        ctx.clearRect(hk.x,hk.y,50,50);   //清除滑块            
                        hk.x=ev.clientX;    
                        Hk(hk.x,rext.y);
                        //绘制滑块
                        var hk_x=ev.clientX;
                        var yz_x=rext.x;
                        (function(x,y){
                            if(x>y && x<y+50){
                                console.log("验证成功");
                            }
                        })(hk_x,yz_x)      //判断验证的匿名函数
                   })              

                }
            })   //点击事件的处理

        function Rect(){
            ctx.fillStyle='whitesmoke';
            ctx.fillRect(rext.x,rext.y,50,50);
        }
        function Hk(x,y){
            hk.x=x;
            hk.y=y;
            ctx.fillRect(hk.x,hk.y,50,50);  
        }   
    }
</script>

目前基本的效果已经出来了,虽然验证的地方有点问题,不过整体的功能还是实现了,完结撒花,以后再慢慢完善~

到此这篇关于canvas实现滑动验证的实现示例的文章就介绍到这了,更多相关canvas滑动验证内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
移动端rem布局的两种实现方法
Jan 03 HTML / CSS
CSS3实现swap交换动画
Jan 19 HTML / CSS
CSS3+Sprite实现僵尸行走动画特效源码
Jan 27 HTML / CSS
HTML5文档结构标签
Apr 21 HTML / CSS
详解rem 适配布局
Oct 31 HTML / CSS
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
Dec 13 HTML / CSS
html5使用canvas画一条线
Dec 15 HTML / CSS
Html5实现移动端、PC端 刮刮卡效果
Jun 30 HTML / CSS
Html5实现首页动态视频背景的示例代码
Sep 25 HTML / CSS
通过canvas转换颜色为RGBA格式及性能问题的解决
Nov 22 HTML / CSS
Html5写一个简单的俄罗斯方块小游戏
Dec 03 HTML / CSS
canvas小画板之平滑曲线的实现
Aug 12 HTML / CSS
解决html5中的video标签ios系统中无法播放使用的问题
Aug 10 #HTML / CSS
Html5 webview元素定位工具的实现
Aug 07 #HTML / CSS
HTML5 video循环播放多个视频的方法步骤
Aug 06 #HTML / CSS
html5 video全屏播放/自动播放的实现示例
Aug 06 #HTML / CSS
HTML5 通过Vedio标签实现视频循环播放的示例代码
Aug 05 #HTML / CSS
Html5饼图绘制实现统计图的方法
Aug 05 #HTML / CSS
Canvas 帧动画吃苹果小游戏
Aug 05 #HTML / CSS
You might like
PHP新手上路(八)
2006/10/09 PHP
PHP 八种基本的数据类型小结
2011/06/01 PHP
ThinkPHP中自定义目录结构的设置方法
2014/08/15 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
thinkphp框架下实现登录、注册、找回密码功能
2016/04/06 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
2016/12/23 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
2021/03/09 PHP
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
Bootstrap网格系统详解
2016/04/26 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
2017/08/19 Javascript
微信小程序左右滑动的实现代码
2017/12/15 Javascript
Vue中android4.4不兼容问题的解决方法
2018/09/04 Javascript
JavaScript文本特效实例小结【3个示例】
2018/12/22 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
[01:21]2018DOTA2亚洲邀请赛4.5采访 打DOTA2也能有女朋友?
2018/04/06 DOTA
简单了解OpenCV是个什么东西
2017/11/10 Python
python字符串常用方法及文件简单读写的操作方法
2020/03/04 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
python实现三壶谜题的示例详解
2020/11/02 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
Html5+JS实现手机摇一摇功能
2015/04/24 HTML / CSS
HTML5到底会有什么发展?HTML5的前景展望
2015/07/07 HTML / CSS
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
综治宣传月活动总结
2014/04/28 职场文书
英语教师求职信
2014/06/16 职场文书
领导班子在批评与自我批评座谈会上的发言
2014/09/28 职场文书
一年级数学上册复习计划
2015/01/17 职场文书