当前位置: 首页 > Web前端 > HTML

手机端模仿支付宝滑块验证码的效果实现

时间:2023-04-03 00:46:14 HTML

.slidetounlock{字体大小:12px;背景:-webkit-gradient(linear,lefttop,righttop,color-stop(0,#4d4d4d),color-stop(.4,#4d4d4d),color-stop(.5,#fff),color-stop(.6,#4d4d4d),色标(1,#4d4d4d));-webkit-背景剪辑:文本;-webkit-文本填充颜色:透明;-webkit-animation:slidetounlock3s无限;-webkit-text-size-adjust:none}@-webkit-keyframesslidetounlock{0%{background-position:-200px0}100%{background-position:200px0}},以加强验证功能,减少APP的攻击。队长要求做一个支付宝滑块验证效果。除了出色的外观和用户体验,其安全性也丝毫没有降低,通过对用户行为的分析来保证安全验证。搜索了一下,大部分案例都是在PC端展示的,在手机端无法友好展示。所以参考了CSND博主的一篇文章做了一些修改。原文链接CSDN-Front-endimplementationofAlipaysliderverificationcodeeffect显示效果图:Front-endimplementationofslidereffect。涵盖的内容主要有:滑块前端样式(html排版)、滑块闪动效果(CSS3动画)、滑块滑动脚本编写(javascript按下、拖动、离开事件编写。)备注:本例无改动对HTML和CSS,只有JS修改。HTMl代码滑动.slidetounlock{字体大小:12px;背景:-webkit-gradient(linear,lefttop,righttop,color-stop(0,#4d4d4d),color-stop(.4,#4d4d4d),color-stop(.5,#fff),color-stop(.6,#4d4d4d),色标(1,#4d4d4d));-webkit-背景剪辑:文本;-webkit-文本填充颜色:透明;-webkit-animation:slidetounlock3s无限;-webkit-text-size-adjust:none}@-webkit-keyframesslidetounlock{0%{background-position:-200px0}100%{background-position:200px0}}<正文>

请点击住滑块,拖到最右边
CSS代码#drag{position:relative;background-color:#e8e8e8;width:300px;height:34px;line-height:34px;text-align:center;}#drag.handler{position:absolute;top:0px;left:0px;width:40px;height:32px;border:1pxsolid#ccc;cursor:move;}.handler_bg{background:#fffurl("../img/slider.png")不重复center;}.handler_ok_bg{background:#fffurl("../img/complet.png")no-repeatcenter;}#drag.drag_bg{背景颜色:#7ac23c;高度:34px;宽度:0px;}#drag.drag_text{位置:绝对;顶部:0px;宽度:300px;颜色:#9c9c9c;webkit-用户选择:无;用户选择:无;-o-用户选择:无;-ms-用户选择:无;字体大小:12px;//添加}JS代码注释:本例HTML,CSS没有改动,只有JS修改1、鼠标按住、移动、松开事件开始,按下移动、按住结束2、定义手指在元素上的位置,获取pageX3,取消事件绑定off()$。fn.drag=function(options){varx,drag=this,isMove=false,defaults={};varoptions=$.extend(defaults,options);varhandler=drag.find('.handler');vardrag_bg=drag.find('.drag_bg');vartext=drag.find('.drag_text');varmaxWidth=drag.width()-handler.width();//最大可滑动距离//触摸屏幕时x轴的位置handler.on('touchstart',function(e){e.preventDefault();isMove=true;var_touch=e.originalEvent.targetTouches[0];//将元素放在手指上Positionx=_touch.pageX-parseInt(handler.css('left'),10);})//滑块移动时,移动距离为大于0且小于最大距离,滑块x轴位置等于滑块移动距离。on('touchmove',function(e){e.preventDefault();var_touch=e.originalEvent.changedTouches[0];var_x=_touch.pageX-x;//_x=e.pageX-(e.pageX-parseInt(handler.css('left'),10))=xif(isMove){如果(_x>0&&am;_x<=maxWidth){handler.css({'left':_x});drag_bg.css({'width':_x});}elseif(_x>maxWidth){//鼠标指针移动距离达到最大值时清除事件dragOk();}}})//离开触摸屏时,判断position.on('touchend',function(e){e.preventDefault();isMove=false;var_touch=e.originalEvent.changedTouches[0];var_x=_touch.pageX-x;if(_x