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 相关文章推荐
利用CSS的Sass预处理器(框架)来制作居中效果
Mar 10 HTML / CSS
手把手教你用纯css3实现轮播图效果实例
May 04 HTML / CSS
一款纯css3实现的颜色渐变按钮的代码教程
Nov 12 HTML / CSS
CSS3实现文字波浪线效果示例代码
Nov 20 HTML / CSS
Html5新增标签与样式及让元素水平垂直居中
Jul 11 HTML / CSS
html5 worker 实例(二) 图片变换效果
Jun 24 HTML / CSS
使用phonegap进行提示操作的具体方法
Mar 30 HTML / CSS
使用phonegap克隆和删除联系人的实现方法
Mar 31 HTML / CSS
canvas绘制圆角头像的实现方法
Jan 17 HTML / CSS
HTML5自定义mp3播放器源码
Jan 06 HTML / CSS
HTML5 canvas实现的静态循环滚动播放弹幕
Jan 05 HTML / CSS
html+css实现分层金字塔的实例
Jun 02 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
Windows IIS PHP 5.2 安装与配置方法
2009/06/08 PHP
PHP 设置MySQL连接字符集的方法
2011/01/02 PHP
分享一段php获取linux服务器状态的代码
2014/05/27 PHP
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
2012/08/24 Javascript
js操作table示例(个人心得)
2013/11/29 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
完美实现bootstrap分页查询
2015/12/09 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
jQuery给div,Span, a ,button, radio 赋值与取值
2016/06/24 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
彻底学会Angular.js中的transclusion
2017/03/12 Javascript
hammer.js实现图片手势放大效果
2017/08/29 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
python web.py开发httpserver解决跨域问题实例解析
2018/02/12 Python
对numpy中数组元素的统一赋值实例
2018/04/04 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
2020/05/21 Python
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
阿迪达斯比利时官方商城:adidas比利时
2016/10/10 全球购物
奥林匹亚体育:Olympia Sports
2020/12/30 全球购物
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
写自荐信有哪些不宜?
2013/10/17 职场文书
党员干部承诺书范文
2014/03/25 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
致地震灾区的慰问信
2015/03/23 职场文书
兴趣班停课通知
2015/04/24 职场文书
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python
详解Python flask的前后端交互
2022/03/31 Python
vue @ ~ 相对路径 路径别名设置方式
2022/06/05 Vue.js