国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > JS > 正文

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

2024-05-06 16:52:04
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

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

  • 前提:所有東西都必須包含在onload里
  • 改寫:不能有函數(shù)嵌套,可以有全局變量
  • 過(guò)程,如下
    • onload改成構(gòu)造函數(shù),
    • 全局變量改成屬性(通過(guò)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>

 

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


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JavaScript/Ajax教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 文成县| 全椒县| 平邑县| 汉寿县| 新民市| 垣曲县| 大同县| 台江县| 清水河县| 长宁县| 黑水县| 化隆| 涞水县| 扶余县| 濉溪县| 木兰县| 阿拉善盟| 礼泉县| 青岛市| 灌南县| 炉霍县| 阿荣旗| 定南县| 康平县| 济宁市| 万源市| 蒙自县| 湾仔区| 湖南省| 靖安县| 湘乡市| 龙岩市| 万安县| 张家川| 承德市| 涟源市| 阳原县| 临朐县| 襄樊市| 丁青县| 靖远县|