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

javascript拖拽應(yīng)用實(shí)例

 更新時(shí)間:2016年03月25日 14:12:43   作者:凌云之翼  
這篇文章主要為大家詳細(xì)介紹了javascript拖拽應(yīng)用實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

之前文章中也講了一下拖拽的基本思想,理論是有了,那實(shí)踐呢,可以運(yùn)用到什么地方呢?下面就給大家?guī)硪粋€(gè)用拖拽思想寫的一個(gè)小實(shí)例,供大家參考,大致效果看下圖:

就是這樣一個(gè)簡單的一個(gè)拖拽條,你可以把它理解為滾動(dòng)條,也可以理解為表單中的數(shù)量選擇控件,也可以理解為進(jìn)度條,等等,反正你可以改成很多你想要的效果,廢話不多說,我們來看看這個(gè)是怎么做的吧!

想了想,感覺原理就不用說了吧,我在拖拽效果中就已經(jīng)說的很清楚了,不清楚的同學(xué)可以出門左轉(zhuǎn),查看 javascript小實(shí)例,PC網(wǎng)頁里的拖拽 ,我就直接貼代碼了:

css:

<style>
#drag_wrap{
  width:220px;
  height:10px;
  position:relative;
  margin:100px auto;
}
.dis_bg{
  width:200px;
  height:10px;
  border-radius:10px;
  background:#ccc;
  margin-left:10px;
}
#drag_bg{
  width:0;
  height:10px;
  border-radius:10px;
  background:#0CF;
}
#drag_box{
  width:20px;
  height:20px;
  border-radius:10px;
  background:#F30;
  position:absolute;
  top:-5px;
  left:0;
  cursor:move;
}
#drag_box span{
  width:40px;
  height:20px;
  text-align:center;
  line-height:20px;
  border:1px solid #ccc;
  position:absolute;
  top:-25px;
  left:-10px;
  color:#333;
  background:#fff;
}
#drag_wrap1{
  width:10px;
  height:220px;
  position:relative;
  margin:100px auto;
}
.dis_bg1{
  width:10px;
  height:200px;
  border-radius:10px;
  background:#ccc;
  position:absolute;
  top:10px;
}
#drag_bg1{
  width:10px;
  height:0;
  border-radius:10px;
  background:#0CF;
}
#drag_bg1{
  width:10px;
  height:0;
  border-radius:10px;
  background:#0CF;
}
#drag_box1{
  width:20px;
  height:20px;
  border-radius:10px;
  background:#F30;
  position:absolute;
  top:-5px;
  left:-5px;
  cursor:move;
}
#drag_box1 span{
  width:40px;
  height:20px;
  text-align:center;
  line-height:20px;
  border:1px solid #ccc;
  position:absolute;
  top:0;
  left:25px;
  color:#333;
  background:#fff;
}
</style>

html:

<div id="drag_wrap">
    <div class="dis_bg">
      <div id="drag_bg"></div>
    </div>
    <div id="drag_box"><span>0</span></div>
     
  </div>
  <div id="drag_wrap1">
    <div class="dis_bg1">
      <div id="drag_bg1"></div>
    </div>
    <div id="drag_box1"><span>0</span></div>
  </div>

JavaScript:

window.onload = function(){
 
    drag("drag_box","drag_wrap","drag_bg","left");
    drag("drag_box1","drag_wrap1","drag_bg1","top");
     
    function drag(obj,parentNode,bgObj,attr,endFn){
      var obj = document.getElementById(obj);
      var parentNode = document.getElementById(parentNode);
      var bgObj = document.getElementById(bgObj);
      var oNum = obj.getElementsByTagName('span')[0];
      obj.onmousedown = function(ev){
        var ev = ev || event;
         
        //非標(biāo)準(zhǔn)設(shè)置全局捕獲(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;
          if(attr == "left"){ //橫向
            var left = ev.clientX - disX;
            //左側(cè)
            if(left <= 0){
              left = 0;
            }else if(left > pWidth - oWidth){//右側(cè)
              left = pWidth - oWidth;
            };
            obj.style.left = bgObj.style.width = left + 'px';
            oNum.innerHTML = left;
             
          }else if(attr == "top"){ //豎向
            var top = ev.clientY - disY;
             //上面
            if(top <= 0){
              top = 0;
            }else if(top > pHeight - oHeight){//下面
              top = pHeight - oHeight;
            };
            obj.style.top = bgObj.style.height = top + 'px';
            oNum.innerHTML = top;
          };
           
        };
        document.onmouseup = function(ev){
          var ev = ev || event;
          document.onmousemove = document.onmouseup = null;
          endFn && endFn();
          //非標(biāo)準(zhǔn)釋放全局捕獲(IE)
          if(obj.releaseCapture){
            obj.releaseCapture()  
          };
 
        };
        return false;
      }; 
    } 
   
  }

參數(shù)說明:

這里給了5個(gè)參數(shù),obj,parentNode,bgObj,attr,endFn,分別是:

obj:被拖拽對(duì)象

parentNode:限制被拖拽對(duì)象活動(dòng)區(qū)域的對(duì)象,一般設(shè)為它的父級(jí)

bgObj:拖動(dòng)時(shí)的表色背景對(duì)象

attr:2個(gè)參數(shù)left,top,表示是橫向拖拽還是縱向拖拽

endFn:返回函數(shù),有就執(zhí)行,沒有就不執(zhí)行,非必填

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

相關(guān)文章

  • JS簡單實(shí)現(xiàn)浮動(dòng)窗口效果示例

    JS簡單實(shí)現(xiàn)浮動(dòng)窗口效果示例

    這篇文章主要介紹了JS簡單實(shí)現(xiàn)浮動(dòng)窗口效果,涉及javascript操作浮動(dòng)窗口的創(chuàng)建、打開、關(guān)閉等相關(guān)操作技巧,需要的朋友可以參考下
    2016-09-09
  • livereload工具實(shí)現(xiàn)前端可視化開發(fā)【推薦】

    livereload工具實(shí)現(xiàn)前端可視化開發(fā)【推薦】

    本文將介紹一個(gè)工具--livereload。這是一款能根據(jù)你本地文件(html、css、js)的變化,自動(dòng)跟蹤刷新瀏覽器的實(shí)時(shí)刷新工具,有了這個(gè)工具,會(huì)大大減輕你刷新頁面的工作量。下面跟著小編一起來看下吧
    2016-12-12
  • 微信小程序?qū)崿F(xiàn)婚禮邀請(qǐng)函全部流程

    微信小程序?qū)崿F(xiàn)婚禮邀請(qǐng)函全部流程

    本文介紹了如何使用微信小程序技術(shù)制作個(gè)性化的婚禮邀請(qǐng)函,包括頁面布局、交互設(shè)計(jì)和多媒體資源整合,詳細(xì)闡述了從功能需求到頁面設(shè)計(jì)、測(cè)試優(yōu)化以及發(fā)布流程的全面開發(fā)步驟,通過本項(xiàng)目,可以提升創(chuàng)意設(shè)計(jì)和用戶體驗(yàn)優(yōu)化的能力,需要的朋友可以參考下
    2024-10-10
  • JS實(shí)現(xiàn)控制表格只顯示行邊框或者只顯示列邊框的方法

    JS實(shí)現(xiàn)控制表格只顯示行邊框或者只顯示列邊框的方法

    這篇文章主要介紹了JS實(shí)現(xiàn)控制表格只顯示行邊框或者只顯示列邊框的方法,涉及javascript使用表格對(duì)象的rules屬性的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 微信小程序拼接圖片鏈接無底洞深入探究

    微信小程序拼接圖片鏈接無底洞深入探究

    這篇文章主要給大家介紹了關(guān)于微信小程序拼接圖片鏈接無底洞深入探究的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用微信小程序具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • JavaScript 中 JSON.parse 函數(shù) 和 JSON.stringify 函數(shù)

    JavaScript 中 JSON.parse 函數(shù) 和 JSON.stringify 函數(shù)

    這篇文章主要介紹了JavaScript -- JSON.parse 函數(shù) 和 JSON.stringify 函數(shù),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-12-12
  • webpack文件打包錯(cuò)誤異常

    webpack文件打包錯(cuò)誤異常

    這篇文章主要介紹了webpack文件打包錯(cuò)誤異常,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • JavaScript EventEmitter 背后的秘密 完整版

    JavaScript EventEmitter 背后的秘密 完整版

    在這里,我們的目標(biāo)創(chuàng)建屬于我們自己的 Event Emitter 去理解背后的秘密。所以,讓我們看一下下面的代碼是怎么工作的,需要的朋友可以參考下
    2018-03-03
  • JavaScript對(duì)象拷貝與賦值操作實(shí)例分析

    JavaScript對(duì)象拷貝與賦值操作實(shí)例分析

    這篇文章主要介紹了JavaScript對(duì)象拷貝與賦值操作,結(jié)合實(shí)例形式分析了javascript對(duì)象定義、拷貝、賦值等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-12-12
  • JS如何通過FileReader獲取.txt文件內(nèi)容

    JS如何通過FileReader獲取.txt文件內(nèi)容

    今天小編就為大家分享一篇JS如何通過FileReader獲取.txt文件內(nèi)容,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12

最新評(píng)論

武川县| 谢通门县| 霍邱县| 揭阳市| 湘潭县| 兴城市| 泊头市| 英德市| 永安市| 桑植县| 柯坪县| 崇阳县| 仁寿县| 临桂县| 舞钢市| 田东县| 乌兰浩特市| 彰武县| 临西县| 教育| 新乐市| 彭山县| 柳林县| 德保县| 顺昌县| 阜平县| 尚义县| 阿拉尔市| 达孜县| 双牌县| 台安县| 余姚市| 日喀则市| 宁化县| 洛隆县| 客服| 泗水县| 丰台区| 香格里拉县| 贡山| 陆良县|