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

JS+DIV實現(xiàn)拖動效果

 更新時間:2020年02月11日 08:16:22   作者:geekzsp  
這篇文章主要為大家詳細(xì)介紹了JS+DIV實現(xiàn)拖動效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了JS+DIV實現(xiàn)拖動效果的具體代碼,供大家參考,具體內(nèi)容如下

效果圖

思路

代碼

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<div id="main" style="background-color: aqua;width: 100px;height: 100px;position: absolute;left: 50px;top: 50px">
  <div id="title" style="height: 10px;width:100%;background-color: antiquewhite;position: absolute;left: 0px;top: 0px"></div>
  <div class="box"></div>
</div>
<script>

  var startx;
  var starty;
  var startLeft;
  var startTop;
  var titleDiv=document.getElementById("title");
  var mainDiv=document.getElementById("main");
  var isDown=false;
//  鼠標(biāo)按下
  function movedown(e){
    e=e?e:window.event;
    isDown=true;
    startx=e.clientX;
    starty=e.clientY;
    startLeft=parseInt(mainDiv.style.left);
    startTop=parseInt(mainDiv.style.top);
  }
//  鼠標(biāo)移動
  function move(e){
    e=e?e:window.event;
    if(isDown) {
      mainDiv.style.left = e.clientX - (startx - startLeft)+"px";
      mainDiv.style.top = e.clientY - (starty - startTop)+"px";
    }
  }
//  鼠標(biāo)松開
  function moveup(){
    isDown=false;
  }
  titleDiv.οnmοusedοwn=movedown;
  titleDiv.οnmοusemοve=move;
  titleDiv.οnmοuseup=moveup;
</script>
</body>
</html>

優(yōu)化(封裝,以及解決拖動問題(事件捕獲))

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<div id="main" style="background-color: aqua;width: 100px;height: 100px;position: absolute;left: 50px;top: 50px">
  <div id="title"
     style="height: 10px;width:100%;background-color: antiquewhite;position: absolute;left: 0px;top: 0px"></div>
  <div class="box"></div>
</div>
<script>


  function Mover(title) {
    this.obj = title;
    this.startx = 0;
    this.starty;
    this.startLeft;
    this.startTop;
    this.mainDiv = title.parentNode;
    var that = this;
    this.isDown = false;
    this.movedown = function (e) {
      e = e ? e : window.event;
      if (!window.captureEvents) {
        this.setCapture();
      } //事件捕獲僅支持ie
//      函數(shù)功能:該函數(shù)在屬于當(dāng)前線程的指定窗口里設(shè)置鼠標(biāo)捕獲。一旦窗口捕獲了鼠標(biāo),
//      所有鼠標(biāo)輸入都針對該窗口,無論光標(biāo)是否在窗口的邊界內(nèi)。同一時刻只能有一個窗口捕獲鼠標(biāo)。
//      如果鼠標(biāo)光標(biāo)在另一個線程創(chuàng)建的窗口上,只有當(dāng)鼠標(biāo)鍵按下時系統(tǒng)才將鼠標(biāo)輸入指向指定的窗口。
//      非ie瀏覽器 需要在document上設(shè)置事件
      that.isDown = true;
      that.startx = e.clientX;
      that.starty = e.clientY;

      that.startLeft = parseInt(that.mainDiv.style.left);
      that.startTop = parseInt(that.mainDiv.style.top);
    }
    this.move = function (e) {
      e = e ? e : window.event;
      if (that.isDown) {
        that.mainDiv.style.left = e.clientX - (that.startx - that.startLeft) + "px";
        that.mainDiv.style.top = e.clientY - (that.starty - that.startTop) + "px";
      }
    }
    this.moveup = function () {
      that.isDown = false;
      if (!window.captureEvents) {
        this.releaseCapture();
      } //事件捕獲僅支持ie
    }
    this.obj.onmousedown = this.movedown;
    this.obj.onmousemove = this.move;
    this.obj.onmouseup = this.moveup;

    //非ie瀏覽器
    document.addEventListener("mousemove", this.move, true);
  }
  var mover = new Mover(document.getElementById("title"));


  //寫兩個是為了解決 ie 和非ie 瀏覽器關(guān)于事件捕獲 的兼容性問題


</script>
</body>
</html>

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

相關(guān)文章

  • input框中自動展示當(dāng)前日期yyyy/mm/dd的實現(xiàn)方法

    input框中自動展示當(dāng)前日期yyyy/mm/dd的實現(xiàn)方法

    下面小編就為大家?guī)硪黄猧nput框中自動展示當(dāng)前日期yyyy/mm/dd的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • bootstrapValidator自定驗證方法寫法

    bootstrapValidator自定驗證方法寫法

    這篇文章主要為大家詳細(xì)介紹了bootstrapValidator自定驗證方法寫法,研究bootstrapValidator驗證,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 利用JS判斷元素是否為數(shù)組的方法示例

    利用JS判斷元素是否為數(shù)組的方法示例

    這篇文章主要給大家介紹了關(guān)于利用JS判斷元素是否為數(shù)組的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • JavaScript 的繼承

    JavaScript 的繼承

    大家都知道,C#中使用的是傳統(tǒng)的類繼承是很簡單,但在JS中,可就沒這么簡單了,因為它使用的是原型(prototype )繼承,實現(xiàn)起來相對復(fù)雜了一點。
    2011-10-10
  • 給Function做的OOP擴(kuò)展

    給Function做的OOP擴(kuò)展

    自編框架Megami的一部分……現(xiàn)在發(fā)現(xiàn)自己實在太宅了…… 文件中出現(xiàn)的名字請對號入座……
    2009-05-05
  • 移動端使用localResizeIMG4壓縮圖片

    移動端使用localResizeIMG4壓縮圖片

    這篇文章主要為大家詳細(xì)介紹了移動端使用localResizeIMG4壓縮圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 理解javascript函數(shù)式編程中的閉包(closure)

    理解javascript函數(shù)式編程中的閉包(closure)

    這篇文章主要幫助大家理解javascript函數(shù)式編程中的閉包(closure)概念,通俗地講, JavaScript 中每個的函數(shù)都是一個閉包,感興趣的小伙伴們可以參考一下
    2016-03-03
  • JavaScript解決單線程缺陷webWorker問題

    JavaScript解決單線程缺陷webWorker問題

    Web Worker 為 Web 內(nèi)容在后臺線程中運(yùn)行腳本提供了一種簡單的方法,本文給大家介紹JavaScript解決單線程缺陷——webWorker,需要的朋友可以參考下
    2023-06-06
  • JS實現(xiàn)留言板功能

    JS實現(xiàn)留言板功能

    這篇文章主要為大家詳細(xì)介紹了JS實現(xiàn)留言板功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • JavaScript調(diào)用C語言的幾種方式

    JavaScript調(diào)用C語言的幾種方式

    本文主要介紹了JavaScript調(diào)用C語言的幾種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02

最新評論

珠海市| 汉阴县| 安徽省| 恩施市| 万全县| 庆云县| 高雄县| 长汀县| 牟定县| 西乡县| 社会| 常熟市| 呼和浩特市| 锦州市| 大安市| 石台县| 依安县| 新绛县| 罗城| 夏河县| 岗巴县| 贵阳市| 双峰县| 华宁县| 新干县| 静宁县| 泰和县| 临清市| 宜春市| 高安市| 巢湖市| 余庆县| 理塘县| 葵青区| 黄浦区| 小金县| 武鸣县| 甘德县| 乐都县| 阳春市| 翁源县|