欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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ù)學運算用法總結(jié)

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

相關(guān)文章

  • 關(guān)于動態(tài)執(zhí)行代碼(js的Eval)實例詳解

    關(guān)于動態(tài)執(zhí)行代碼(js的Eval)實例詳解

    下面小編就為大家?guī)硪黄P(guān)于動態(tài)執(zhí)行代碼(js的Eval)實例詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • 微信小程序tabBar組件切換與下拉刷新實現(xiàn)詳解

    微信小程序tabBar組件切換與下拉刷新實現(xiàn)詳解

    tabBar相對而言用的還是比較多的,但是用起來并沒有難,下面這篇文章主要給大家介紹了關(guān)于微信小程序全局配置之tabBar的相關(guān)資料,文中通過圖文以及示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • 深入理解js A*尋路算法原理與具體實現(xiàn)過程

    深入理解js A*尋路算法原理與具體實現(xiàn)過程

    這篇文章主要介紹了js A*尋路算法原理與具體實現(xiàn)過程,結(jié)合實例形式詳細分析了A*尋路算法的具體概念、原理、實現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • 刪除table表格行的實例講解

    刪除table表格行的實例講解

    下面小編就為大家?guī)硪黄獎h除table表格行的實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 微信小程序?qū)崿F(xiàn)分頁功能

    微信小程序?qū)崿F(xiàn)分頁功能

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)分頁功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • JS獲取指定時間的時間戳的方法匯總(最新整理收藏版)

    JS獲取指定時間的時間戳的方法匯總(最新整理收藏版)

    在JavaScript中,可以使用Date.parse()或new Date()來獲取指定時間的時間戳,本文給大家分享JS獲取指定時間的時間戳的方法,感興趣的朋友一起看看吧
    2024-01-01
  • 詳解wepy開發(fā)小程序踩過的坑(小結(jié))

    詳解wepy開發(fā)小程序踩過的坑(小結(jié))

    這篇文章主要介紹了詳解wepy開發(fā)小程序踩過的坑,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • JavaScript惰性求值的一種實現(xiàn)方法示例

    JavaScript惰性求值的一種實現(xiàn)方法示例

    這篇文章主要給大家介紹了關(guān)于JavaScript惰性求值的一種實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01
  • JavaScript常見事件源與事件流的獲取方法及解析

    JavaScript常見事件源與事件流的獲取方法及解析

    這篇文章主要為大家介紹了JavaScript常見事件源與事件流的獲取方法及解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • webpack中的模式(mode)使用詳解

    webpack中的模式(mode)使用詳解

    這篇文章主要介紹了webpack中的模式(mode)使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02

最新評論