亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

javascript拖拽應用實例(二)

2019-11-20 10:20:43
字體:
來源:轉載
供稿:網友

經常在網站別人的網站的注冊頁中看到一個拖拽驗證的效果,就是它的驗證碼剛開始不出來,而是有一個拖拽的條,你必須將這個拖拽條拖到底,驗證碼才出來,說了感覺跟沒說一樣,你還是不理解,好吧,我給個圖你看看:

這個是在萬網的注冊頁中所截的圖,大概的效果就是,當拖動那個拖拽框時,如果拖拽框沒有拖到最右邊,則拖拽框會移動到初始位置,如果拖動到最右邊,則拖拽框顯示為對勾,中間的文字也變了,但是我試了一下,他的驗證碼的框沒有出來,不知道是改了還是怎么的,我沒有繼續點擊確定往下進行,那不是我們要講的重點,我就在他的代碼中把那個驗證的框手動顯示出來了,也就是gif最后的幾幀中的畫面,這樣講,應該懂我要講的是什么意思吧,沒錯,我們今天要實現的就是這個拖拽驗證的效果,拖拽后的驗證框我們就不做了

看看我們做的效果:

gif圖感覺有點卡,實際效果要流暢一些,看看效果基本上無差吧,具體實現原理我就不講了,如果還不知道怎么實現的同學,可以出門往左轉,找到我寫的一篇 :javascript實現PC網頁里的拖拽效果 ,里面寫的比較清楚,掌握拖拽的基本原理,實現這樣的效果

那就是小菜一碟了,哈哈,那我就把代碼貼出來給大家看看,僅供參考:

css:

#drag_wrap{  width:300px;  height:35px;  position:relative;  background:#e8e8e8;  margin:100px auto;}#drag_bg{  width:0;  height:35px;  background:#7ac23c;  position:absolute;  top:0;  left:0;}#drag_box{  width:40px;  height:33px;  border:1px solid #ccc;  background:#fff url(images/rt.png) no-repeat center center;  position:absolute;  top:0;  left:0;  cursor:move;  z-index:2;}#drag_txt{  width: 100%;  height: 100%;  text-align: center;  position: absolute;  z-index: 1;  background: transparent;  color: #9c9c9c;  line-height: 35px;  font-size: 12px;}#drag_txt span{  cursor: default;  z-index: 0;}#drag_txt .startTxt{  background: -webkit-gradient(linear,left top,right top,color-stop(0,#4d4d4d),color-stop(.4,#4d4d4d),color-stop(.5,#fff),color-stop(.6,#4d4d4d),color-stop(1,#4d4d4d));  -webkit-background-clip: text;  -webkit-text-fill-color: transparent;  -webkit-animation: slidetounlock 3s infinite;  -webkit-text-size-adjust: none;}@-webkit-keyframes slidetounlock {  0% {    background-position: -200px 0  }  100% {    background-position: 200px 0  }}.yseTxt{  background:none;  color:#fff;}

html:

<div id="drag_wrap">    <div id="drag_bg"></div>    <div id="drag_box"></div>    <div id="drag_txt" ><span class="startTxt">請按住滑塊,拖動到最右邊</span></div>  </div>

JavaScript:

window.onload = function(){    drag("drag_box","drag_wrap","drag_bg","drag_txt");        function drag(obj,parentNode,bgObj,oTxt,endFn){      var obj = document.getElementById(obj);      var parentNode = document.getElementById(parentNode);      var bgObj = document.getElementById(bgObj);      var oTxt = document.getElementById(oTxt);      var aSpan = oTxt.getElementsByTagName("span")[0];      obj.onmousedown = function(ev){        var ev = ev || event;                //非標準設置全局捕獲(IE)        if(obj.setCapture){          obj.setCapture()          };        var disX = ev.clientX - this.offsetLeft,          disY = ev.clientY - this.offsetTop;        var oWidth = obj.offsetWidth,          oHeight = obj.offsetHeight;        var pWidth = parentNode.offsetWidth,          pHeight = parentNode.offsetHeight;              document.onmousemove = function(ev){          var ev = ev || event;                    var left = ev.clientX - disX;          //左側          if(left <= 0){            left = 0;          }else if(left >= pWidth - oWidth){//右側            left = pWidth - oWidth;            obj.style.background = "#fff url(images/yes.png) no-repeat center center";            aSpan.innerHTML = "驗證通過"; //這里應該有ajax操作            aSpan.className = 'yseTxt';          };          obj.style.left = bgObj.style.width = left + 'px';                      };        document.onmouseup = function(ev){          var ev = ev || event;          document.onmousemove = document.onmouseup = null;          //磁性吸附          var L = ev.clientX - disX;          if(L < pWidth - oWidth){            startMove(obj,{left:0});            startMove(bgObj,{width:0});            };          endFn && endFn();          //非標準釋放全局捕獲(IE)          if(obj.releaseCapture){            obj.releaseCapture()            };        };        return false;      };      }      //這里是一個運動函數    function startMove(obj,json,endFn){      clearInterval(obj.timer);      obj.timer = setInterval(function(){        var bBtn = true;        for(var attr in json){          var iCur = 0;          if(attr == 'opacity'){            if(Math.round(parseFloat(getStyle(obj,attr))*100)==0){              iCur = Math.round(parseFloat(getStyle(obj,attr))*100);            }else{              iCur = Math.round(parseFloat(getStyle(obj,attr))*100) || 100;            }            }          else{            iCur = parseInt(getStyle(obj,attr)) || 0;          }          var iSpeed = (json[attr] - iCur)/5;          iSpeed = iSpeed >0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);          if(iCur!=json[attr]){            bBtn = false;          }          if(attr == 'opacity'){            obj.style.filter = 'alpha(opacity=' +(iCur + iSpeed)+ ')';            obj.style.opacity = (iCur + iSpeed)/100;            }          else{            obj.style[attr] = iCur + iSpeed + 'px';          }        }        if(bBtn){          clearInterval(obj.timer);          if(endFn){            endFn.call(obj);          }        }      },30);    }    //這里是獲取css樣式函數    function getStyle(obj,attr){      if(obj.currentStyle){        return obj.currentStyle[attr];        }else{        return getComputedStyle(obj,false)[attr];      }    }  } 

參數說明:

這里給了5個參數,obj,parentNode,bgObj,oTxt,endFn

obj:表示拖拽對象

parentNode:表示拖拽對象活動區域,一般設為父級

bgObj:表示拖拽時的背景顏色變化的對象

oTxt:表示文本變化對象

endFn:返回函數,非必填

以上就是本文的全部內容,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色青青草原桃花久久综合| 91精品视频免费观看| 奇米一区二区三区四区久久| 成人激情视频免费在线| 国内成人精品一区| 在线观看精品自拍私拍| 亚洲欧美制服中文字幕| 不卡在线观看电视剧完整版| 米奇精品一区二区三区在线观看| 亚洲美女性生活视频| 欧美一级大片在线观看| 久久精品视频在线播放| 亚洲成人在线网| 国产精品久久久久77777| 国产精品久久久久99| 亚洲va欧美va国产综合剧情| 久久久www成人免费精品张筱雨| 最新国产精品拍自在线播放| 欧美日韩国产在线看| 亚洲免费视频在线观看| 欧美丰满少妇xxxx| 91精品国产91久久| 国产精品一区电影| 欧美电影免费观看大全| 性欧美在线看片a免费观看| 国产精品人成电影在线观看| 成人国产精品久久久久久亚洲| 国产日韩视频在线观看| 欧美精品性视频| 精品久久久久久中文字幕一区奶水| 国产视频一区在线| 日韩av观看网址| 一区二区在线免费视频| 视频直播国产精品| 国产精品扒开腿做爽爽爽视频| 国产欧美va欧美va香蕉在线| 中日韩午夜理伦电影免费| 欧美日韩高清区| 亚洲深夜福利网站| 日韩中文字幕在线精品| 久久久亚洲精品视频| 亚洲资源在线看| 久久91精品国产| 国产综合在线视频| 欧亚精品中文字幕| 欧美日韩高清区| 欧美精品18videosex性欧美| 国产精品福利观看| 亚州精品天堂中文字幕| 最新69国产成人精品视频免费| 亚洲大胆人体在线| 91麻豆国产语对白在线观看| 亚洲欧美日韩天堂一区二区| 亚洲国模精品私拍| 精品一区二区三区四区| 久久久91精品国产一区不卡| 久久精品视频亚洲| 日本高清久久天堂| 亚洲欧美成人一区二区在线电影| 国产精品视频公开费视频| 91精品视频在线免费观看| 久热精品视频在线免费观看| 欧美黑人一区二区三区| 国产一区二区三区三区在线观看| 热99精品里视频精品| 亚洲精品免费一区二区三区| 亚洲视频在线视频| 97精品欧美一区二区三区| 国产精品美乳在线观看| 91精品视频在线免费观看| 2020欧美日韩在线视频| 国产成人av网址| 一本色道久久综合亚洲精品小说| 日本一区二区在线免费播放| 亚洲欧洲视频在线| 91在线免费看网站| 日韩欧美精品中文字幕| 精品视频一区在线视频| 91免费视频国产| 欧美国产一区二区三区| 国产精品网红直播| 亚洲欧美日韩国产成人| 欧美大片在线免费观看| 国产一区视频在线| 亚洲福利视频免费观看| 亚洲国产欧美在线成人app| 欧美限制级电影在线观看| 日韩中文理论片| 日韩欧美在线免费| 欧洲成人性视频| 成人久久一区二区三区| 日韩美女毛茸茸| 欧美激情视频一区二区三区不卡| 正在播放欧美一区| 美女国内精品自产拍在线播放| 欧美激情在线观看视频| 精品国产乱码久久久久久天美| 亚洲精品日韩丝袜精品| 成人做爽爽免费视频| 久久精品国产亚洲精品2020| 国产精品丝袜一区二区三区| 最近2019中文字幕第三页视频| 欧美极品在线视频| 亚洲精品98久久久久久中文字幕| 欧美风情在线观看| 热久久视久久精品18亚洲精品| 9.1国产丝袜在线观看| 欧美性色19p| 日韩欧美高清视频| 青青久久aⅴ北条麻妃| 亚洲欧洲国产一区| 欧美激情第1页| 日本一区二区三区四区视频| 黄色成人av在线| 韩国三级电影久久久久久| 国产精品一区二区三区久久久| 久久久久久中文字幕| 欧美影院久久久| 国产精品三级美女白浆呻吟| 国产精品成人播放| 欧美精品www| 欧美专区日韩视频| 91精品免费久久久久久久久| 欧美一级片免费在线| 中日韩午夜理伦电影免费| 中文日韩在线视频| 国产欧美精品va在线观看| 色琪琪综合男人的天堂aⅴ视频| 亚洲成色777777女色窝| 91精品国产综合久久久久久久久| 日韩av片免费在线观看| 亚洲成人久久久久| 欧美精品一区二区免费| 在线视频精品一| 亚洲国产日韩精品在线| 日韩精品在线私人| 亚洲日韩欧美视频| 欧美性xxxx极品高清hd直播| 亚洲欧美日韩一区二区三区在线| 欧美午夜精品久久久久久久| 国产精品第一视频| 欧美情侣性视频| 亚洲国产91色在线| 欧美中文在线观看国产| 精品高清美女精品国产区| 亚洲精品国产拍免费91在线| 性欧美暴力猛交69hd| 国产日产亚洲精品| 国产精品一区=区| 亚洲毛片在线观看.| 91精品国产色综合久久不卡98口| 在线视频精品一| 日韩欧美中文在线| 欧美激情视频在线| 色妞在线综合亚洲欧美| 国产亚洲欧洲黄色| 久久91亚洲精品中文字幕奶水| 热99久久精品| 在线视频精品一| 久久精品国产亚洲| 久久久久久国产免费| 日韩一二三在线视频播| 亚洲国产精品成人av| 国产69精品99久久久久久宅男|