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 相关文章推荐
利用CSS3实现平移动画效果示例代码
Oct 12 HTML / CSS
利用HTML5+CSS3实现3D转换效果实例详解
May 02 HTML / CSS
css3 column实现卡片瀑布流布局的示例代码
Jun 22 HTML / CSS
CSS3 边框效果
Nov 04 HTML / CSS
html5标记文字_动力节点Java学院整理
Jul 11 HTML / CSS
HTML5之SVG 2D入门5—颜色的表示及定义方式
Jan 30 HTML / CSS
html5如何及时更新缓存文件(js、css或图片)
Jun 24 HTML / CSS
HTML5 Canvas鼠标与键盘事件demo示例
Jul 04 HTML / CSS
HTML5 Notification(桌面提醒)功能使用实例
Mar 17 HTML / CSS
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
May 07 HTML / CSS
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
Oct 16 HTML / CSS
HTML5 常见面试题之PC端和移动端区别介绍
Jan 22 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
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
2010/01/12 Javascript
ExtJS Ext.MessageBox.alert()弹出对话框详解
2010/04/02 Javascript
jQuery基础知识小结
2014/12/22 Javascript
JavaScript实现删除,移动和复制文件的方法
2015/08/05 Javascript
详解Python中logging日志模块在多进程环境下的使用
2016/12/26 Javascript
JS优化与惰性载入函数实例分析
2017/04/06 Javascript
使用JS编写的随机抽取号码的小程序
2017/08/11 Javascript
微信小程序顶部导航栏滑动tab效果
2019/01/28 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
详解vue项目打包步骤
2019/03/29 Javascript
Vue多环境代理配置方法思路详解
2019/06/21 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
python变量不能以数字打头详解
2016/07/06 Python
Python正则表达式经典入门教程
2017/05/22 Python
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
PyTorch学习笔记之回归实战
2018/05/28 Python
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
python中cPickle类使用方法详解
2018/08/27 Python
详解python中的线程与线程池
2019/05/10 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
将pytorch转成longtensor的简单方法
2020/02/18 Python
使用 pytorch 创建神经网络拟合sin函数的实现
2020/02/24 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
初二生物教学反思
2014/02/03 职场文书
数控技术专业毕业自荐书范文
2014/02/05 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
学习型班组申报材料
2014/05/31 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
法院四风对照检查材料思想汇报
2014/10/06 职场文书
幸福来敲门观后感
2015/06/04 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
受欢迎的自荐信,就这么写!
2019/04/19 职场文书
AngularJS实现多级下拉框
2022/03/25 Javascript