首页 > 其他分享 >暂时保留的图片滑动验证不完整的代码,

暂时保留的图片滑动验证不完整的代码,

时间:2023-09-11 17:04:04浏览次数:29  
标签:style img 验证 代码 move moveX var 滑动 left

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>图片滑动验证</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <style>
      .box {
        width: 500px;
        height: 300px;
        background: url("hauka.png") no-repeat;
        background-size: 100%;
        position: relative;
        margin: auto;
      }
      .img {
        width: 40px;
        height: 40px;
        background: url("hauka.png") no-repeat;
        position: absolute;
        top: 110px;
        left: 0px;
        z-index: 1;
      }
      .gap {
        width: 20px;
        height: 20px;
        background-color: red;
        position: absolute;
        left: 221px;
      }
      .move {
        width: 40px;
        height: 40px;
        background-color: blue;
        position: absolute;
        top: 110px;
        left: 221px;
        cursor: pointer;
      }
    </style>
  </head>
  <body>
    <div>
      <div class="box">
        <div class="img" style="background-position: -221px center"></div>
        <div class="gap" style="left: 221px"></div>
        <div class="move"></div>
      </div>
    </div>
    <script>
      var box = document.querySelector(".box");
      var img = document.querySelector(".img");
      var gap = document.querySelector(".gap");
      var move = document.querySelector(".move");
      var initialX = 0; // 初始滑块位置
      var isDragging = false; // 标记是否正在拖动滑块

      var boxWidth = box.offsetWidth;
      var imgWidth = img.offsetWidth;

      // 随机生成图片的缺口
      function generateGap() {
        var left =
          Math.floor(Math.random() * (boxWidth - 2 * imgWidth)) + imgWidth;

        gap.style.left = left + "px";
        img.style.backgroundPosition = -left + "px center";
        initialX = left;

        return left;
      }

      // 拖动事件绑定
      move.addEventListener("mousedown", function (e) {
        isDragging = true; // 标记开始拖动
        initialX = e.clientX - parseInt(move.style.left || move.offsetLeft, 10);
      });

      document.addEventListener("mousemove", function (e) {
        if (isDragging) {
          var mouseX = e.clientX; // 鼠标相对于文档左边的距离
          var moveX = mouseX - box.getBoundingClientRect().left - initialX; // 计算滑块的位置

          // 判断是否超出容器边界
          if (moveX < 0) {
            moveX = 0;
          } else if (moveX > boxWidth - imgWidth) {
            moveX = boxWidth - imgWidth;
          }

          move.style.left = moveX + "px";
        }
      });

      document.addEventListener("mouseup", function (e) {
        if (isDragging) {
          isDragging = false; // 标记结束拖动

          var imgLeft = parseInt(img.style.left);
          var gapLeft = parseInt(gap.style.left);

          // 判断滑块是否与缺口重合
          if (Math.abs(imgLeft - gapLeft) < 5) {
            alert("验证成功!");
          } else {
            alert("验证失败,请重新尝试。");
            generateGap(); // 重新生成缺口
            move.style.left = "0px"; // 将滑块重置到起始位置
          }
        }
      });

      // 页面加载时生成缺口
      generateGap();
    </script>
  </body>
</html>

 

标签:style,img,验证,代码,move,moveX,var,滑动,left
From: https://www.cnblogs.com/fgxwan/p/17693906.html

相关文章

  • 工业互联网的破局密钥——低代码开发
    纵观历史上三次工业革命的演进过程,以蒸汽机、电力、计算机为相应时代的“新型”基础设施建设,依托“通用技术”的广泛应用,带动了整个行业与市场的发展。在发展数字经济成为必选题的今天,同样需要一个新型的、基础性的、通用型的、可以产品化的发明创造,从而带动数字经济行业大发展。......
  • 工业互联网的破局密钥——低代码开发
    纵观历史上三次工业革命的演进过程,以蒸汽机、电力、计算机为相应时代的“新型”基础设施建设,依托“通用技术”的广泛应用,带动了整个行业与市场的发展。在发展数字经济成为必选题的今天,同样需要一个新型的、基础性的、通用型的、可以产品化的发明创造,从而带动数字经济行业大发展。而......
  • 视频监控平台EasyCVR分组批量绑定/取消通道功能的后端代码设计逻辑介绍
    视频监控平台/视频存储/视频分析平台EasyCVR基于云边端一体化管理,可支持视频实时监控、云端录像、云存储、磁盘阵列存储、回放与检索、智能告警、平台级联等功能。安防监控平台在线下场景中应用广泛,包括智慧工地、智慧工厂、智慧校园、智慧社区等等。在前期的文章中我们介绍了......
  • 前端代码规范与最佳实践
    1.代码规范的重要性在前端开发中,代码规范是非常重要的。它可以提高代码的可读性、可维护性和可扩展性,减少bug的产生,并且方便多人协作开发。本文将介绍一些前端代码规范的最佳实践,并给出一些示例。2.HTML代码规范2.1使用语义化的标签使用语义化的HTML标签可以增加代码的可读......
  • 3个月,用无代码从上系统到开拓新业务模式
    ......
  • nopi 2.6.1 读word docx,写Excel xsls 源代码例子
    ///<summary>///获取.docx文件内容,使用NPOI.XWPF插件解析///</summary>///<paramname="strFilePath">文件路径</param>///<returns></returns>publicstringGetDocxContent(stri......
  • 解决Python中的包管理与依赖问题代码实操
    Python的包管理与依赖问题是一个常见的挑战,但通过以下具体的解决方案和步骤,你可以更好地处理和管理项目中的依赖关系,提高开发效率。1.使用虚拟环境进行包管理步骤:a.安装虚拟环境工具,比如venv或者virtualenv。在命令行中输入以下命令安装venv:```$python3-mvenvmyenv```b.创建虚......
  • IDEA提交代码至远程仓库
    1、查看项目目录,是否存在.git文件夹(若存在则删除)2、创建一个新的git仓库3、add后文件会变绿4、commit代码5、设置远程仓库地址6、推送代码至远程仓库(一般来说都要新pull再push,此处是因为我们远程仓库为空)......
  • python PEP8代码规范
    1.PEP8:W191indentation contains tabs因为粘贴来的代码用tab缩进,而现在的代码用space当缩进解决办法方法一:Edit->ConvertIndents->ToSpaces方法二:ctrl+shift+A=>在弹出的窗口中输入“ToSpaces”就可以将所有的tab转为space方法三:Code->R......
  • pppay.exe恶意代码分析
    业界微步和vt沙箱样本分析:https://s.threatbook.com/report/file/376255ae3f745766ad2a3250c933467cdc3cff886b759bc3e1f656ddf4171433https://www.virustotal.com/gui/file/376255ae3f745766ad2a3250c933467cdc3cff886b759bc3e1f656ddf4171433/relations C2域名是 www.mask......