这篇文章主要为大家详细介绍了JavaScript实现滑块验证案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了JavaScript实现滑块验证的具体代码,供大家参考,具体内容如下

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. }
  13. .box {
  14. position: relative;
  15. width: 500px;
  16. height: 40px;
  17. border: 1px solid #000;
  18. }
  19. p {
  20. position: relative;
  21. z-index: 5;
  22. font: 20px/40px '楷体';
  23. text-align: center;
  24. color: rgba(95, 90, 90, 0.479);
  25. }
  26. .btn {
  27. width: 40px;
  28. height: 40px;
  29. border: 1px solid #ccc;
  30. box-sizing: border-box;
  31. background-color: #fff;
  32. cursor: pointer;
  33. z-index: 6;
  34. position: absolute;
  35. top: 0;
  36. left: 0;
  37. background-position: center;
  38. background-repeat: no-repeat;
  39. background-size: 50% auto;
  40. background-image: url(./图1.png);
  41. }
  42. .bg {
  43. height: 100%;
  44. position: absolute;
  45. top: 0;
  46. left: 0;
  47. background-color: #7ac23c;
  48. }
  49. </style>
  50. </head>
  51. <body>
  52. <div class="box">
  53. <div class="btn"></div>
  54. <p>拖动滑块验证</p>
  55. <div class="bg"></div>
  56. </div>
  57. </body>
  58. <script>
  59. //获取事件
  60. var box = document.querySelector('.box')
  61. var p = document.querySelector('p')
  62. var btn = document.querySelector('.btn')
  63. var bg = document.querySelector('.bg')
  64. // 选中文字就会触发这个事件
  65. this.box.onselectstart = function () {
  66. return false // 阻止默认行为
  67. }
  68. //默认没有验证成功
  69. var flag = false;
  70. //按下事件
  71. btn.onmousedown = function () {
  72. var e1 = window.event;
  73. var x1 = e1.offsetX;
  74. //移动事件
  75. btn.onmousemove = function () {
  76. var e2 = window.event;
  77. var x2 = e2.clientX
  78. //计算left的值
  79. var left = x2 - x1
  80. if (left > 0) {
  81. //设置滑动块的距离
  82. this.style.left = left + 'px';
  83. //设置背景的宽度
  84. bg.style.width = left + 'px';
  85. if (left > box.offsetWidth - this.offsetWidth) {
  86. //验证成功
  87. flag = true;
  88. p.innerText = '通过验证'
  89. p.style.color = '#000'
  90. //事件清除
  91. this.onmousedown = null;
  92. this.onmousemove = null;
  93. }
  94. }
  95. }
  96. //鼠标松开
  97. btn.onmouseup = function () {
  98. //事件清除
  99. this.onmousemove = null;
  100. //判断验证是否成功
  101. if (flag) {
  102. return
  103. }
  104. this.style.left = 0; //设置滑动块的距离
  105. bg.style.width = 0; //设置背景的宽度
  106. };
  107. }
  108. </script>
  109. </html>


以上就是本文的全部内容,希望对大家的学习有所帮助

更多相关文章

  1. Android(安卓)中如何处理双击事件
  2. Android高仿网易新闻客户端之动态添加标签
  3. [置顶] Android中的dispatchTouchEvent()、onInterceptTouchEven
  4. Android实验法分析Touch事件传递
  5. cocos2dx android平台事件系统解析
  6. Android-防止事件导致的oncreate的多次调用
  7. Android(安卓)UI架构(四)--SurfaceFlinger的初始化.md
  8. Android输入法之输入系统
  9. Android(安卓)View绘制过程以及事件传递原理

随机推荐

  1. 准备语句SQL异常“无输入参数”
  2. 低延迟系统的Java实践
  3. java基础:集合框架之Map(共性方法)
  4. Java正则表达式
  5. javaweb从单机到分布式架构演变过程
  6. Netty学习心得 netty服务端和客户端的连
  7. 线程“main”中的异常java.lang.RuntimeE
  8. java中jcom操作excel
  9. JavaWeb-1-IOS或Android客户端上传图片到
  10. 使用超类中的构造函数