最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js實(shí)現(xiàn)滑動(dòng)滑塊驗(yàn)證登錄

 更新時(shí)間:2021年06月06日 11:31:05   作者:不要生病~  
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)滑動(dòng)滑塊驗(yàn)證登錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了js實(shí)現(xiàn)滑動(dòng)滑塊驗(yàn)證登錄的具體代碼,供大家參考,具體內(nèi)容如下

1.html代碼

<div class="box">
 <!--滑塊-->
 <a href="#" rel="external nofollow" ><div class="btn">>></div></a>
 <!--文字-->
 <p class="text">拖動(dòng)滑塊驗(yàn)證</p>
 <!--背景-->
 <div class="bg"></div> 
</div>

2.css樣式

最大的盒子相對定位,其他內(nèi)部內(nèi)容絕對定位
需要根據(jù)層級設(shè)置z-index保證滑動(dòng)的正常使用

.box{
 position: relative;
 width: 300px;
 height: 34px;
 background: #e8e8e8;
 border-radius: 4px;
 left: 20px;
}
.btn{
 position: absolute;
 top: 0;
 width: 40px;
 height:32px;
 text-align: center;
 line-height: 32px;
 border-radius: 4px;
 z-index: 3;
 background-color: #fff;
 border: 1px solid #ccc;
 color: black;
}
.text{
 position: absolute;
 width: 100%;
 margin: 0;
 text-align: center;
 line-height: 34px;
 display: block;
 z-index: 2;
 /*-webkit-margin-before: 1em;
 -webkit-margin-after: 1em;*/
}
.bg{
 position: absolute;
 height: 100%;
 background-color: yellowgreen;
 z-index: 1;
}

樣式

3.js事件

分析使用過程:按住滑塊并拖動(dòng)可以移動(dòng),中途松開滑塊返回起始位置,拖動(dòng)至最后滑塊不動(dòng)
分析動(dòng)作:
1.按鈕按下并移動(dòng)
2.事件狀態(tài):event對象(鼠標(biāo)位置)event.clientX獲得與X軸的距離
3.松開按鈕回到原處
4.結(jié)束,松開按鈕,按鈕不可再次拖動(dòng)

1)

var btn=document.querySelector(".btn");
var box=document.querySelector(".box");
var bg=document.querySelector(".bg");
var text=document.querySelector(".text");

或者使用封裝選擇器

function $(name){
  return document.querySelector(name);
};
 var box=$(".box"),btn=$(".btn").....;

2)按下

按下后獲得與x軸的距離

btn.onmousedown=function(e){
  var downX=e.clientX; 

3)拖動(dòng)

拖動(dòng)后獲得與x軸距離減去初始值距離得到按鈕移動(dòng)的值
根據(jù)移動(dòng)的值:判斷按鈕是否可以正常移動(dòng),判斷按鈕是否已經(jīng)完成驗(yàn)證

btn.onmousemove=function(e){
 var moveX=e.clientX-downX; 
// console.log(moveX);
 
 //移動(dòng)范圍
 if(moveX>-2){
 this.style.left=moveX+"px";//將移動(dòng)值賦值給滑塊
 bg.style.width=moveX+"px";//背景
 if(moveX>=(box.offsetWidth-btn.offsetWidth)){//包含原始寬度內(nèi)邊距邊框,不包含外邊框
 //拖到頭,驗(yàn)證成功
 flag=true;
 text.innerHTML="驗(yàn)證成功";
 text.style.color="white";
 //事件清除
 btn.onmousedown=null;
 btn.onmousemove=null;
 }
 }

4)松開按鈕

回到原處清除拖動(dòng)

btn.onmouseup=function(){ 
 //事件清除
  btn.onmousemove=null;
  if(flag)return;
  this.style.left=0;//將移動(dòng)值賦值給滑塊
 bg.style.width=0;//背景
 
 }

4.效果

5.源碼

//原生寫法
window.onload=function(){
 var btn=document.querySelector(".btn");
 var box=document.querySelector(".box");
 var bg=document.querySelector(".bg");
 var text=document.querySelector(".text");
 //封裝選擇器
// function $(name){
// return document.querySelector(name);
// };
// var box=$(".box"),btn=$(".btn").....;
 var flag=false;
 //按下onmousedown 拖動(dòng)onmousemove
 //document.querySelector(".btn").onmousedown=function(event){//event事件狀態(tài)
// var e=event||window.event;
 //獲取方法集合,可直接通過id, 類, 類型, 屬性, 屬性值等來選取元素(返回此名字的第一個(gè))。
 btn.onmousedown=function(e){//按下
  var downX=e.clientX; //按下后對x軸的距離
//  console.log(downX);
//  alert("1");
 
 btn.onmousemove=function(e){//拖動(dòng)
 var moveX=e.clientX-downX; //拖動(dòng)后與x軸距離減去初始值距離,移動(dòng)值
// console.log(moveX);
 
 //移動(dòng)范圍
 if(moveX>-2){
 this.style.left=moveX+"px";//將移動(dòng)值賦值給滑塊
 bg.style.width=moveX+"px";//背景
 if(moveX>=(box.offsetWidth-btn.offsetWidth)){//包含原始寬度內(nèi)邊距邊框,不包含外邊框
 //拖到頭,驗(yàn)證成功
 flag=true;
 text.innerHTML="驗(yàn)證成功";
 text.style.color="white";
 //事件清除
 btn.onmousedown=null;
 btn.onmousemove=null;
 }
 }
 }
 }
 
 //松開按鈕
 btn.onmouseup=function(){ 
 //事件清除
  btn.onmousemove=null;
  if(flag)return;
  this.style.left=0;//將移動(dòng)值賦值給滑塊
 bg.style.width=0;//背景
 
 }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一些超實(shí)用的JS常用算法詳解(推薦!)

    一些超實(shí)用的JS常用算法詳解(推薦!)

    算法是計(jì)算機(jī)算法即計(jì)算機(jī)能夠執(zhí)行的算法,只有明確了算法后,才能使應(yīng)用程序?qū)崿F(xiàn)某些功能,所以通常人們會(huì)將算法稱為程序的靈魂,下面這篇文章主要給大家分享介紹了一些超實(shí)用的JS常用算法的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • 對google個(gè)性主頁的拖拽效果的js的完整注釋[轉(zhuǎn)]

    對google個(gè)性主頁的拖拽效果的js的完整注釋[轉(zhuǎn)]

    對google個(gè)性主頁的拖拽效果的js的完整注釋[轉(zhuǎn)]...
    2007-04-04
  • js實(shí)現(xiàn)遍歷含有input的table實(shí)例

    js實(shí)現(xiàn)遍歷含有input的table實(shí)例

    這篇文章主要介紹了js實(shí)現(xiàn)遍歷含有input的table方法,結(jié)合實(shí)例形式分析了jsp讀取數(shù)據(jù)庫動(dòng)態(tài)生成table及JavaScript遍歷table的相關(guān)技巧,需要的朋友可以參考下
    2015-12-12
  • BootStrap智能表單實(shí)戰(zhàn)系列(七)驗(yàn)證的支持

    BootStrap智能表單實(shí)戰(zhàn)系列(七)驗(yàn)證的支持

    這篇文章主要介紹了BootStrap智能表單實(shí)戰(zhàn)系列(七)驗(yàn)證的支持 ,凡是涉及到用戶編輯信息然后保存的頁面,都涉及到一個(gè)數(shù)據(jù)是否符合要求的檢查,需要客服端和服務(wù)器端的校驗(yàn)的問題,本文介紹非常詳細(xì),具有參考價(jià)值,需要的朋友可以參考下
    2016-06-06
  • JavaScript中自定義swiper組件詳解

    JavaScript中自定義swiper組件詳解

    這篇文章主要介紹了微信小程序 swiper組件輪播圖詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下,希望能給你帶來幫助
    2021-08-08
  • ECharts設(shè)置x軸刻度間隔的2種解決方法

    ECharts設(shè)置x軸刻度間隔的2種解決方法

    在初步接觸Echarts時(shí),經(jīng)常遇到設(shè)置x軸刻度間隔的問題,這篇文章主要給大家介紹了關(guān)于ECharts設(shè)置x軸刻度間隔的2種解決方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • javascript 常見的閉包問題的解決辦法

    javascript 常見的閉包問題的解決辦法

    javascript 常見的閉包問題的解決辦法,需要的朋友可以參考下。
    2009-11-11
  • JavaScript作用域鏈實(shí)例詳解

    JavaScript作用域鏈實(shí)例詳解

    這篇文章主要介紹了JavaScript作用域鏈,結(jié)合實(shí)例形式較為詳細(xì)的分析了作用域鏈的原理、功能與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-01-01
  • JS/jQ實(shí)現(xiàn)免費(fèi)獲取手機(jī)驗(yàn)證碼倒計(jì)時(shí)效果

    JS/jQ實(shí)現(xiàn)免費(fèi)獲取手機(jī)驗(yàn)證碼倒計(jì)時(shí)效果

    這篇文章主要介紹了JS/jQ實(shí)現(xiàn)免費(fèi)獲取手機(jī)驗(yàn)證碼倒計(jì)時(shí)效果的相關(guān)資料,通過定義兩個(gè)接口,發(fā)送驗(yàn)證請求和返回?cái)?shù)據(jù)驗(yàn)證手機(jī)號和驗(yàn)證是否一致,后臺根據(jù)接口去實(shí)現(xiàn),需要的朋友可以參考下
    2016-06-06
  • js實(shí)現(xiàn)下一頁頁碼效果

    js實(shí)現(xiàn)下一頁頁碼效果

    本文主要介紹了js實(shí)現(xiàn)下一頁頁碼效果的實(shí)例,具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03

最新評論

晴隆县| 花垣县| 广灵县| 图们市| 法库县| 乌兰县| 肃宁县| 迁安市| 德格县| 剑阁县| 会宁县| 高清| 扎赉特旗| 德钦县| 温泉县| 兰州市| 潮州市| 德州市| 剑河县| 马鞍山市| 宜兰县| 宁夏| 沐川县| 天气| 进贤县| 三台县| 新乐市| 万全县| 陇西县| 汉中市| 伊金霍洛旗| 濮阳县| 澄迈县| 临沂市| 牙克石市| 滁州市| 青铜峡市| 灯塔市| 嘉荫县| 托克托县| 宿迁市|