滑动验证
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
* {
padding: 0;
margin: 0;
}
.container {
width: 600px;
height: 600px;
margin: 100px auto;
border: 10px solid red;
position: relative;
/* 不让用户选中 */
user-select: none;
}
.container .img1 {
width: 100%;
height: 550px;
}
.moveBox {
width: 50px;
height: 50px;
background-color: red;
position: absolute;
bottom: 0;
left: 0;
}
.cutoutBox {
width: 50px;
height: 50px;
background: yellow;
position: absolute;
/* top: 200px;
left: 200px; */
}
.verifyBox {
width: 50px;
height: 50px;
position: absolute;
left: 0;
/* top: 200px; */
background: url(images/2.jpg) no-repeat;
background-size: 600px 550px;
/* background-position: -200px -200px; */
}
</style>
</head>
<body>
<div class="container">
<img class="img1" src="images/2.jpg" alt="">
<!-- 抠图的盒子 -->
<div class="cutoutBox">
</div>
<!-- 验证的盒子 -->
<div class="verifyBox">
</div>
<!-- 滑动的盒子 -->
<div class="moveBox">
</div>
</div>
<script>
var ocontainer = document.querySelector('.container')
var omoveBox = document.querySelector('.moveBox')
var overifyBox = document.querySelector('.verifyBox')
var ocutoutBox = document.querySelector('.cutoutBox')
var oimg1 = document.querySelector('.img1')
var maxX = ocontainer.clientWidth - ocutoutBox.offsetWidth
console.log(maxX)
var maxY = oimg1.clientHeight - ocutoutBox.offsetHeight
console.log(maxY)
//x轴最小的min 最大的为maxX
genLocation()
//鼠标点击拖拽
omoveBox.onmousedown = function (e) {
var e = e || event
console.log(88888)
var gapX = e.offsetX
document.onmousemove = function (e) {
var e = e || event
console.log(44444)
var x = e.x - gapX - ocontainer.offsetLeft
if (x < 0) x = 0
if (x > maxX) x = maxX
omoveBox.style.cssText += `left:${x}px;`
overifyBox.style.cssText += `left:${x}px`
}
document.onmouseup = function () {
console.log(333333)
document.onmousemove = null
//获取的是数字
if (Math.abs(ocutoutBox.offsetLeft - overifyBox.offsetLeft) <= 2) {
location.href = 'https://www.baidu.com/'
} else {
genLocation()
omoveBox.style.cssText = `left:0`
}
}
}
//生成随机位置
function genLocation() {
var x = rand(300, maxX - 30)
var y = rand(30, maxY - 30)
ocutoutBox.style.cssText += `left:${x}px;top:${y}px`
overifyBox.style.cssText += `left:0;top:${y}px`
overifyBox.style.cssText += `background-position: ${-x}px ${-y}px;`
}
function rand(min, max) {
return parseInt(Math.random() * (max - min) + min)
}
</script>
</body>
</html>

浙公网安备 33010602011771号