html实现滑动解锁_js滑动解锁(原创)

html实现滑动解锁_js滑动解锁(原创)varbox=document.querySelector(“#box”);varcontent=document.querySelector(“#content”);varshadow=document.querySelector(“#shadow”);vartip=document.querySelector(“#tip”);varblock=document.q…

大家好,又见面了,我是你们的朋友全栈君。

var box = document.querySelector(“#box”);

var content = document.querySelector(“#content”);

var shadow = document.querySelector(“#shadow”);

var tip = document.querySelector(“#tip”);

var block = document.querySelector(“#block”);

var maxWidth = content.clientWidth – shadow.offsetWidth

var maxHeight = content.clientHeight – shadow.offsetHeight;

var ranX = Math.round(Math.random() * maxWidth);

var ranY = Math.round(Math.random() * maxHeight);

shadow.style.left = ranX + “px”;

shadow.style.top = ranY + “px”;

tip.style.top = ranY + “px”;

tip.style.backgroundPosition = -ranX + “px ” + (-ranY) + “px”;

block.onmousedown = function(e) {

var ev = event || e;

var startX = ev.x;

document.onmousemove = function(e) {

var ev = event || e;

var x = ev.x;

var left = x – startX;

if (left <= 0) {

left = 0;

}

if (left >= maxWidth) {

left = maxWidth;

}

block.style.left = left + “px”;

tip.style.left = left + “px”;

}

}

document.onmouseup = function() {

document.onmousemove = null;

if (Math.abs(tip.offsetLeft – shadow.offsetLeft) <= 2) {

alert(“成功”);

} else {

block.style.left = 0;

tip.style.left = 0;

add();

}

}

function add() {

var ranX = Math.round(Math.random() * maxWidth);

var ranY = Math.round(Math.random() * maxHeight);

shadow.style.left = ranX + “px”;

shadow.style.top = ranY + “px”;

tip.style.top = ranY + “px”;

tip.style.backgroundPosition = -ranX + “px ” + (-ranY) + “px”;

}

window.ondragstart = function() {

return false;

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150566.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【项目实战】登录与注册业务的实现(前端+后端+数据库)

    【项目实战】登录与注册业务的实现(前端+后端+数据库)本示例基于 Vue js 和 mintUI 实现 目录一 数据库的创建二 后端接口与数据库的连接三 前端代码实现 1 注册页相关代码 2 注册页效果 3 登录页相关代码 4 登录页效果四 注册登录演示一 数据库的创建此处以 Navicat 软件进行创建 新建数据库 reg log sql 与数据表 reg log 为了实现注册业务 我们在数据库中设计 ID 用户名 密码 邮箱 电话号 5 个字段 创建结束后保存 便可

    2025年9月26日
    0
  • 谷歌chrome浏览器被hao123 360等劫持问题解决方案

    谷歌chrome浏览器被hao123 360等劫持问题解决方案1.先chrome://version能看到下面这一串“C:\ProgramFiles\Google\Chrome\Application\chrome.exe”–flag-switches-begin–flag-switches-end–origin-trial-disabled-features=SecurePaymentConfirmationhttp://hao.360.com/?src=lm&ls=n4e1d7e8c992.复制上面这一串3.打开4.在标记处粘贴刚

    2022年7月14日
    30
  • reading recovery_the common reader

    reading recovery_the common readerBookKeeperAutoRecovery背景版本:BookKeeper版本为4.12.0(Pulsar2.7.0的内置版本)Recovery主要针对的场景是:当集群中有部分bookie节点因异常原因宕机,此时我们恢复该节点上存储的数据。BookKeeper提供了两种数据恢复方式,一种是手动恢复(Manualrecovery),一种是自动恢复(AutoRecovery)。ManualRecovery如果集群中未开启AutoRecovery的功能,则用户可用手动恢复。手动恢复

    2025年8月4日
    4
  • Qt多线程实例与connect第五个参数[通俗易懂]

    Qt是一个GUI框架,在GUI程序中,主线程也叫GUI线程,因为它是唯一被允许执行GUI相关操作的线程。对于一些耗时的操作,如果放在主线程中,就是出现界面无法响应的问题。解决方法一:在处理耗时操作中频繁调用QApplication::processEvents()。这个函数告诉Qt去处理那些还没有被处理的各类事件,然后再把控制权返还给调用者。QElapsedTimeret;…

    2022年4月8日
    84
  • android psd预览图软件,来自psd的Android Vector drawable具有空预览

    android psd预览图软件,来自psd的Android Vector drawable具有空预览在屏幕截图中,文件中没有pathdata.因此,屏幕上没有任何内容.我正在显示VectorDrawablexml文件的内容.将内容复制到androidstudio中的空白xml文件中,并在屏幕上看到蓝色绘制的形状.android:width=”600dp”android:height=”600dp”android:viewportWidth=”800.0″android:viewportHei…

    2022年5月3日
    47
  • navicat 15 fro Mysql激活码(注册激活)

    (navicat 15 fro Mysql激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlHQ…

    2022年3月28日
    88

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号