javascript實現(xiàn)滑動解鎖功能
更新時間:2017年03月22日 08:49:17 作者:DarkNight
本篇文章主要介紹了javascript實現(xiàn)滑動解鎖功能的方法實例,具有很好的參考價值。下面跟著小編一起來看下吧
效果圖:

代碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<style type="text/css">
* {
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;
}
</style>
</head>
<body>
<div id="slider-box">
<span id="slider">></span>
<span id="slider-text">滑動解鎖</span>
<span id="slider-bg"></span>
<span id="slider-Emerge"></span>
<span id="stop-go">∨</span>
</div>
</body>
<script type="text/javascript">
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.onmousedown=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;
//鼠標(biāo)移動的時候是否成功
Elemt.mx.onmousemove=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";
}
//當(dāng)鼠抬起判斷是否滑動成功
Elemt.mx.onmouseup=function(e){
var e =sliderel.getEvent(e)
Elemt.flag=false
if(Elemt.sd.offsetLeft<maxMove){
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)
}
}
//當(dāng)鼠離開是否滑動成功
Elemt.sd.onmouseout=function(e){
sliderel.stopBubble(e);
Elemt.flag=false;
if( Elemt.sd.offsetLeft<maxMove){
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);
}
}
</script>
</html>
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
window.print()打印根據(jù)高度設(shè)置居中顯示和布局(縱向橫向)
本文主要介紹了window.print()打印根據(jù)高度設(shè)置居中顯示和布局(縱向橫向),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
javascript瀏覽器窗口之間傳遞數(shù)據(jù)的方法
這篇文章主要介紹了javascript瀏覽器窗口之間傳遞數(shù)據(jù)的方法,實例分析了父窗口與子窗口之間傳遞參數(shù)的使用技巧,非常具有實用價值,需要的朋友可以參考下2015-01-01

