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

JavaScript使用面向?qū)ο髮崿F(xiàn)的拖拽功能詳解

 更新時間:2019年06月12日 11:55:33   作者:longzhoufeng  
這篇文章主要介紹了JavaScript使用面向?qū)ο髮崿F(xiàn)的拖拽功能,結(jié)合實例形式詳細分析了javascript基于面向?qū)ο蟮耐献Чδ軐崿F(xiàn)思路、原理與具體操作技巧,需要的朋友可以參考下

本文實例講述了JavaScript使用面向?qū)ο髮崿F(xiàn)的拖拽功能。分享給大家供大家參考,具體如下:

面向?qū)ο笥袀€前提:

  • 前提:所有東西都必須包含在onload里
  • 改寫:不能有函數(shù)嵌套,可以有全局變量
  • 過程,如下
    • onload改成構(gòu)造函數(shù),
    • 全局變量改成屬性(通過this)
    • 函數(shù)改寫成方法
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>面向?qū)ο蟮睦^承-1</title>
<style>
#div1 {width: 100px; height: 100px; background: red; position: absolute;}
</style>
<script>
window.onload = function() {
  var oDiv = document.getElementById('div1');
  oDiv.onmousedown = function(ev) {
    var ev = ev || event;
    var disX = ev.clientX - this.offsetLeft;
    var disY = ev.clientY - this.offsetTop;
    document.onmousemove = function(ev) {
      var ev = ev || event;
      oDiv.style.left = ev.clientX - disX + 'px';
      oDiv.style.top = ev.clientY - disY + 'px';
    }
    document.onmouseup = function() {
      document.onmousemove = document.onmouseup = null;
    }
  }
}
</script>
</head>
<body>
  <div id="div1"></div>
</body>
</html>

把局部變量改成全局變量

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>面向?qū)ο蟮睦^承-2</title>
<style>
#div1 {width: 100px; height: 100px; background: red; position: absolute;}
</style>
<script>
var oDiv=null;
var disX=0;
var disY=0;
window.onload = function() {
  oDiv = document.getElementById('div1');
  oDiv.onmousedown = fnDown;
}
function fnMove(ev) {
  var ev = ev || event;
  oDiv.style.left = ev.clientX - disX + 'px';
  oDiv.style.top = ev.clientY - disY + 'px';
}
function fnUp() {
  document.onmousemove = document.onmouseup = null;
}
function fnDown(ev) {
  var ev = ev || event;
  disX = ev.clientX - this.offsetLeft;
  disY = ev.clientY - this.offsetTop;
  document.onmousemove = fnMove;
  document.onmouseup =fnUp;
}
</script>
</head>
<body>
  <div id="div1"></div>
</body>
</html>

引用塊內(nèi)容

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>面向?qū)ο蟮睦^承-2</title>
<style>
#div1 {width: 100px; height: 100px; background: red; position: absolute;}
#div2 {width: 100px; height: 100px; background: red; position: absolute;top:120px;}
</style>
<script>
window.onload=function(){
  new Drag('div1');
  new Drag('div2');
}
function Drag(id) {
  var _this=this;
  this.disX=0;
  this.disY=0;
  this.oDiv = document.getElementById(id);
  this.oDiv.onmousedown = function(){
    _this.fnDown()
  };
}
Drag.prototype.fnDown=function (ev) {
  var ev = ev || event;
  var _this=this;
  this.disX = ev.clientX - this.oDiv.offsetLeft;
  this.disY = ev.clientY - this.oDiv.offsetTop;
  document.onmousemove = function(){
    _this.fnMove();
  };
  document.onmouseup =function(){
    _this.fnUp();
  };
}
Drag.prototype.fnMove=function(ev) {
  var ev = ev || event;
  this.oDiv.style.left = ev.clientX - this.disX + 'px';
  this.oDiv.style.top = ev.clientY - this.disY + 'px';
}
Drag.prototype.fnUp=function () {
  document.onmousemove = null;
  document.onmouseup = null
}
</script>
</head>
<body>
  <div id="div1"></div>
  <div id="div2"></div>
</body>
</html>

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>面向?qū)ο蟮睦^承-2</title>
<style>
#div1 {width: 100px; height: 100px; background: red; position: absolute;}
#div2 {width: 100px; height: 100px; background: red; position: absolute;top:120px;}
</style>
<script>
window.onload=function(){
  new Drag('div1');
  new Drag('div2');
}
function Drag(id) {
  var _this=this;
  this.disX=0;
  this.disY=0;
  this.oDiv = document.getElementById(id);
  this.oDiv.onmousedown = function(){
    _this.fnDown()
  };
}
Drag.prototype.fnDown=function (ev) {
  var ev = ev || event;
  var _this=this;
  this.disX = ev.clientX - this.oDiv.offsetLeft;
  this.disY = ev.clientY - this.oDiv.offsetTop;
  document.onmousemove = function(){
    _this.fnMove();
  };
  document.onmouseup =function(){
    _this.fnUp();
  };
}
Drag.prototype.fnMove=function(ev) {
  var ev = ev || event;
  this.oDiv.style.left = ev.clientX - this.disX + 'px';
  this.oDiv.style.top = ev.clientY - this.disY + 'px';
}
Drag.prototype.fnUp=function () {
  document.onmousemove = null;
  document.onmouseup = null
}
</script>
</head>
<body>
  <div id="div1"></div>
  <div id="div2"></div>
</body>
</html>

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具http://tools.jb51.net/code/HtmlJsRun測試一下運行效果。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript頁面元素操作技巧總結(jié)》、《JavaScript操作DOM技巧總結(jié)》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)

希望本文所述對大家JavaScript程序設(shè)計有所幫助。

相關(guān)文章

  • 基于JavaScript實現(xiàn)交互式博客

    基于JavaScript實現(xiàn)交互式博客

    在Web開發(fā)中,JavaScript(JS)是一種至關(guān)重要的編程語言,它使網(wǎng)頁具有交互性,本文主要介紹了如何使用JavaScript實現(xiàn)一個交互式博客,需要的可以了解下
    2024-01-01
  • Jquery Autocomplete 結(jié)合asp.net使用要點

    Jquery Autocomplete 結(jié)合asp.net使用要點

    Jquery的Autocomplete是一個很好的智能提示插件,但是在實際使用過程中還是會遇到一些小問題.
    2010-10-10
  • 利用 spin.js 生成等待效果(js 等待效果)

    利用 spin.js 生成等待效果(js 等待效果)

    這篇文章主要介紹了利用 spin.js 生成等待效果(js 等待效果),需要的朋友可以參考下
    2017-06-06
  • js string 轉(zhuǎn) int 注意的問題小結(jié)

    js string 轉(zhuǎn) int 注意的問題小結(jié)

    Javascript將string類型轉(zhuǎn)換int類型的過程中總會出現(xiàn)不如意的問題,下面為大家介紹下js string轉(zhuǎn)int的一些注意的問題,感興趣的朋友可以參考下
    2013-08-08
  • Postman環(huán)境變量全局變量使用方法詳解

    Postman環(huán)境變量全局變量使用方法詳解

    這篇文章主要介紹了Postman環(huán)境變量全局變量使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • JavaScript操作XLSX文件的示例詳解

    JavaScript操作XLSX文件的示例詳解

    本文將深入探討如何使用強大的xlsx庫來操作Excel文件,本文將涵蓋如何在Node.js和瀏覽器環(huán)境中讀取Excel文件,創(chuàng)建新的Excel文件等內(nèi)容,感興趣的小伙伴可以了解下
    2024-11-11
  • Jquery對數(shù)組的操作技巧整理

    Jquery對數(shù)組的操作技巧整理

    這篇文章主要介紹了Jquery對數(shù)組的操作技巧,需要的朋友可以參考下
    2014-03-03
  • JS立即執(zhí)行函數(shù)功能與用法分析

    JS立即執(zhí)行函數(shù)功能與用法分析

    這篇文章主要介紹了JS立即執(zhí)行函數(shù)功能與用法,結(jié)合實例形式分析了立即執(zhí)行函數(shù)的相關(guān)概念、定義、使用方法及操作注意事項,需要的朋友可以參考下
    2019-01-01
  • 詳解JS HTML Web端使用MQTT通訊測試

    詳解JS HTML Web端使用MQTT通訊測試

    這篇文章主要介紹了JS HTML Web端使用MQTT通訊測試,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • javascript使用正則表達式實現(xiàn)注冊登入校驗

    javascript使用正則表達式實現(xiàn)注冊登入校驗

    這篇文章主要為大家詳細介紹了javascript使用正則表達式實現(xiàn)注冊登入校驗,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09

最新評論

都匀市| 布拖县| 泰宁县| 托克逊县| 永顺县| 龙泉市| 张家界市| 丹江口市| 大安市| 略阳县| 祥云县| 黄梅县| 新蔡县| 新乐市| 睢宁县| 武山县| 东海县| 大荔县| 永济市| 佛冈县| 柞水县| 新巴尔虎右旗| 卢龙县| 綦江县| 醴陵市| 兴山县| 余干县| 温州市| 连州市| 萍乡市| 内丘县| 宜君县| 乐昌市| 灌云县| 巴里| 手游| 昂仁县| 临颍县| 顺义区| 永嘉县| 利川市|