html实现滑动解锁_javascript实现滑动解锁功能

本文介绍了如何使用JavaScript实现滑动解锁功能,包括HTML结构、CSS样式和JavaScript交互逻辑。通过创建滑动条元素、设置鼠标事件监听,实现滑动效果及成功判断。文章包含完整代码示例。
摘要由CSDN通过智能技术生成

效果图:

代码如下:

* {

margin: 0;

padding: 0;

}

#slider-box {

width: 300px;

height: 50px;

border-radius: 4px;

background: #ccc;

margin: 250px auto;

position: relative;

}

#slider {

width: 48px;

height: 48px;

border: 1px solid #eee;

text-align: center;

line-height: 48px;

display: inline-block;

background: #fff;

border-radius: 4px;

cursor: move;

position: absolute;

left: 0;

z-index: 5;

}

#slider-text {

text-align: center;

line-height: 50px;

display: inline-block;

width: 100%;

height: 50px;

font-family: "微软雅黑";

position: absolute;

left: 0;

z-index: 4;

}

#slider-bg {

width: 0;

height: 48px;

background: green;

position: absolute;

z-index: 3;

border-radius: 4px;

}

#slider-Emerge {

width: 100px;

background:;

height: 50px;

position: absolute;

}

#stop-go {

width: 48px;

height: 48px;

border: 1px solid #eee;

background:#36F;

position: absolute;

right: -1px;

display: none;

text-align: center;

line-height: 48px;

color: #fff;

font-family: "微软雅黑";

border-radius: 4px;

z-index: 5;

}

div{

-moz-user-select:none;

-webkit-user-select:none;

user-select:none;

}

滑动解锁

var sliderel={

$: function(selector){

return document.getElementById(selector)

},

getEvent:function(e){

var e=e || window.event

return e;

},

stopBubble:function(e){

var e =this.getEvent(e)

if(typeof e.preventDefault != "undefined"){

e.preventDefault();

}else{

e.returnValue = false;

}

}

},

Elemt={

flag:false,

nowMoseX: 0,

mx:sliderel.$("slider-box"),

sd:sliderel.$("slider"),

st:sliderel.$("slider-text"),

sb:sliderel.$("slider-bg"),

se:sliderel.$("slider-Emerge"),

sg:sliderel.$("stop-go"),

}

Elemt.sd.οnmοusedοwn=function(e){

var e =sliderel.getEvent(e)

sliderel.stopBubble(e);

Elemt.flag=true

nowMoseX=e.clientX-Elemt.sd.offsetLeft;

}

//滑块最大移动的距离

maxMove=Elemt.mx.offsetWidth -Elemt.sd.offsetWidth;

//鼠标移动的时候是否成功

Elemt.mx.οnmοusemοve=function(e){

var e =sliderel.getEvent(e)

if(Elemt.flag){

var moveX=e.clientX-nowMoseX;

var oElemLeft=Elemt.sd.offsetLeft;//判断滑块移动的范围

if(oElemLeft<0){ //判断滑块是否超出限制位置

moveX=0;

Elemt.flag=false

}else if(oElemLeft>maxMove){

moveX=maxMove;

Elemt.sg.style.display="block";

Elemt.sd.style.display="none"

Elemt.sb.style.width=300+"px"

Elemt.st.innerHTML="滑动成功"

Elemt.st.style.color="#fff"

}

}

Elemt.sd.style.left=moveX+"px"

Elemt.sb.style.width=oElemLeft+20+"px";

}

//当鼠抬起判断是否滑动成功

Elemt.mx.οnmοuseup=function(e){

var e =sliderel.getEvent(e)

Elemt.flag=false

if(Elemt.sd.offsetLeft

speed=Math.ceil(Elemt.sd.offsetLeft/40);

time=setInterval(function(){

if(Elemt.sd.offsetLeft>=0){

Elemt.sd.style.left=Elemt.sd.offsetLeft-speed+"px";

Elemt.sb.style.width=Elemt.sb.offsetWidth-speed+"px";

}else{

clearInterval(time);

return false;

}

},10)

}

}

//当鼠离开是否滑动成功

Elemt.sd.οnmοuseοut=function(e){

sliderel.stopBubble(e);

Elemt.flag=false;

if( Elemt.sd.offsetLeft

speed=Math.ceil(Elemt.sd.offsetLeft/40);

time=setInterval(function(){

if(Elemt.sd.offsetLeft>=0){

Elemt.sd.style.left=Elemt.sd.offsetLeft-speed+"px";

Elemt.sb.style.width=Elemt.sb.offsetWidth-speed+"px";

}else{

clearInterval(time);

return false;

}

},10);

}

}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值