成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

JS面向對象編程實現的拖拽功能案例詳解

瀏覽:173日期:2024-05-22 13:06:49

本文實例講述了JS面向對象編程實現的拖拽功能。分享給大家供大家參考,具體如下:

原始的面向過程代碼:

<!DOCTYPE html><html> <head> <meta charset='UTF-8'> <style> #box {width: 100px; height: 100px; background: blue; position: absolute; } </style> <title>拖拽</title> <script> var oBox=null; var disX=0; var disY=0; window.onload=function(){oBox=document.getElementById(’box’);oBox.onmousedown=fnDown; }; //鼠標按下事件 function fnDown(ev){var oEvent = ev||event;disX = oEvent.clientX - oBox.offsetLeft;disY = oEvent.clientY - oBox.offsetTop;document.onmousemove = fnMove;document.onmouseup = fnUp; } //鼠標移動事件 function fnMove(ev){var oEvent=ev||event;oBox.style.left = oEvent.clientX - disX + ’px’;oBox.style.top = oEvent.clientY - disY + ’px’; } //鼠標抬起事件 function fnUp(){document.onmousemove = null;document.onmouseup = null; } </script> </head> <body> <div id='box'></div></body></html>

下面是面向對象的代碼

drag.js

/** * 拖拽 * @param {Object} id div的id */function Drag(id){ this.oBox = document.getElementById(id); this.disX = 0; this.disY = 0; var _this = this; this.oBox.onmousedown = function(){ _this.fnDown(); }}//鼠標按下Drag.prototype.fnDown = function(ev){ var oEvent = ev || event; this.disX = oEvent.clientX - this.oBox.offsetLeft; this.disY = oEvent.clientY - this.oBox.offsetTop; var _this = this; document.onmousemove = function(){ _this.fnMove(); }; document.onmouseup = function(){ _this.fnUp(); };}//鼠標移動Drag.prototype.fnMove = function(ev){ var oEvent= ev || event; this.oBox.style.left = oEvent.clientX - this.disX + ’px’; this.oBox.style.top = oEvent.clientY - this.disY + ’px’;}//鼠標抬起Drag.prototype.fnUp = function(){ document.onmousemove = null; document.onmouseup = null;}

drag.html

<!DOCTYPE html><html> <head> <meta charset='UTF-8'> <style> div {position: absolute; } </style> <title>拖拽</title> <script type='text/javascript' src='http://www.piao2010.com/js/drag.js' ></script> <script> window.onload = function(){var drag1 = new Drag('box1');var drag1 = new Drag('box2'); }; </script> </head> <body> <div style='background: red;width: 200px;height: 200px;'></div> <div style='background: blue;width: 100px;height: 100px;'></div></body></html>

JS面向對象編程實現的拖拽功能案例詳解JS面向對象編程實現的拖拽功能案例詳解

此拖拽有一個問題,就是沒有控制拖拽出邊界的問題。但我們又不想去修改代碼,那我們怎么做?學過java的應該都知道可以寫一個子類來做一些更加具體的操作,又保留了父類的功能,就是繼承。

html

<script type='text/javascript' src='http://www.piao2010.com/js/drag.js' ></script><script type='text/javascript' src='http://www.piao2010.com/js/dragLimit.js' ></script><script> window.onload = function(){ var drag1 = new Drag('box1'); var drag1 = new DragLimit('box2');//藍色是不會超出邊界的 };</script><body> <div style='background: red;width: 200px;height: 200px;'></div> <div style='background: blue;width: 100px;height: 300px;'></div></body>

DragLimit.js:DragLimit繼承自Drag,控制了不能出邊界

/** * 限制邊界的拖拽,繼承自Drag * @param {Object} id */function DragLimit(id){ Drag.call(this, id);}//繼承方法for(var p in Drag.prototype){ DragLimit.prototype[p] = Drag.prototype[p];}/** * 覆寫父類的鼠標移動方法,控制不能移出邊界 */DragLimit.prototype.fnMove = function(ev){ var oEvent= ev || event; var left = oEvent.clientX - this.disX; var top = oEvent.clientY - this.disY; //控制邊界 if(left < 0){ left = 0; } else if(left > document.documentElement.clientWidth-this.oBox.offsetWidth){ left = document.documentElement.clientWidth-this.oBox.offsetWidth; } if(top <= 0){ top = 0; } else if(top > document.documentElement.clientHeight-this.oBox.offsetHeight){ top = document.documentElement.clientHeight-this.oBox.offsetHeight; } this.oBox.style.left = left + ’px’; this.oBox.style.top = top + ’px’;}

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

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》

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

標簽: JavaScript
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
一本久道综合久久精品| 午夜成人免费视频| 99久久久国产精品免费蜜臀| 久久久久高清| 99精品欧美一区二区三区小说| 偷拍自拍另类欧美| 国产人久久人人人人爽| 色久综合一二码| 欧美精品日本| 久久99深爱久久99精品| 国产精品久久久久久久久图文区| 欧美巨大另类极品videosbest | 国产女主播一区二区| 亚洲欧美日韩一区| 99精品国产在热久久下载| 亚洲人成网站色在线观看| 日韩天堂av| 国产很黄免费观看久久| 91精品国产aⅴ一区二区| 色素色在线综合| 久久国产精品亚洲77777| 亚洲国产高清一区| 国内精品**久久毛片app| 欧美在线精品一区| av中文字幕亚洲| 床上的激情91.| 成人精品视频一区二区三区 | 亚洲不卡在线观看| 亚洲一区二区精品3399| 亚洲欧洲制服丝袜| 亚洲免费视频中文字幕| 久久久久久久久久久99999| 欧美精品一区二区精品网| 婷婷久久综合九色国产成人 | 欧美综合欧美视频| 国精品**一区二区三区在线蜜桃| 久久福利精品| 伊人久久久大香线蕉综合直播| 成人美女视频在线看| 国产在线看一区| 国产一区高清在线| 成人午夜私人影院| 成人av在线影院| 欧美暴力喷水在线| 欧美日韩四区| 一区二区精品国产| 久久夜色精品| 欧美日韩免费观看一区二区三区| 日本道在线观看一区二区| 亚洲中国最大av网站| 国产精品免费一区二区三区观看 | 日本精品裸体写真集在线观看 | 日本电影亚洲天堂一区| 国产成人午夜视频| 国产精品久久久久一区 | 久久亚洲精华国产精华液 | 亚洲久久一区| 美女国产一区二区三区| 欧美一区二区女人| 午夜性色一区二区三区免费视频| 亚洲精品乱码久久久久久久久| 色哟哟在线观看一区二区三区| 国产精品一区二区果冻传媒| 久久精品夜夜夜夜久久| 一区二区精品在线观看| 久久精品国产免费| 久久精品亚洲麻豆av一区二区| 一本色道久久综合亚洲精品高清| 久久超碰97中文字幕| 欧美一区二区三区视频免费 | 亚洲国产一区二区三区高清| 日韩电影一二三区| 2021国产精品久久精品| 国产精品久久7| 日本欧美肥老太交大片| 成人免费毛片app| 亚洲精品国产无套在线观| 欧美老肥妇做.爰bbww视频| 国产精品a级| 久久99精品久久久久婷婷| 国产精品三级视频| 欧美日韩免费不卡视频一区二区三区| 色综合亚洲欧洲| 日韩—二三区免费观看av| 久久久久久久久免费| 一本色道**综合亚洲精品蜜桃冫| 成人a免费在线看| 午夜天堂影视香蕉久久| 久久夜色精品一区| 色婷婷久久久久swag精品| 欧美一区二区三区免费看| 五月激情六月综合| 久久免费午夜影院| 色国产综合视频| 韩日成人在线| 国产精品正在播放| 一区二区三区欧美日| 91精品国产欧美日韩| 国产伦精品一区二区| www.日韩在线| 奇米888四色在线精品| 国产精品三级电影| 欧美一区二区在线免费观看| 亚洲一区三区视频在线观看| 99亚偷拍自图区亚洲| 日本va欧美va瓶| 成人欧美一区二区三区黑人麻豆| 91精品国产综合久久久蜜臀粉嫩| 亚洲人www| av电影在线观看完整版一区二区| 午夜精品久久久| 亚洲国产精品av| 在线播放日韩导航| 久久精品国产第一区二区三区最新章节 | 在线观看日韩精品| 在线播放亚洲| 成人国产精品免费观看动漫| 丝袜美腿高跟呻吟高潮一区| 国产精品亲子伦对白| 日韩一区二区免费视频| 久久av在线| 狠狠88综合久久久久综合网| 国产成人aaa| 麻豆成人91精品二区三区| 亚洲摸摸操操av| 日本一区二区三区电影| 在线播放/欧美激情| 色丁香久综合在线久综合在线观看| 在线国产欧美| 91看片淫黄大片一级| 国产盗摄一区二区三区| 蜜芽一区二区三区| 亚洲高清视频的网址| 综合激情成人伊人| 欧美国产1区2区| 精品福利一区二区三区| 7777精品久久久大香线蕉| 色婷婷av一区二区三区大白胸| 夜久久久久久| 激情欧美日韩| 亚洲国产aⅴ天堂久久| 久久久午夜精品理论片中文字幕| 欧美精品久久一区| 色播五月激情综合网| 蘑菇福利视频一区播放| 黄色在线一区| 欧美日韩国产在线一区| 91丨porny丨首页| 成人性生交大合| 国产福利精品一区二区| 极品少妇xxxx偷拍精品少妇| 日韩成人一区二区三区在线观看| 一区二区三区日韩欧美| 亚洲视频精选在线| 国产精品护士白丝一区av| 欧美激情一区二区在线| 久久久久久久久免费| 欧美tickling网站挠脚心| 日韩限制级电影在线观看| 欧美精品xxxxbbbb| 欧美精品vⅰdeose4hd| 欧美日韩国产色站一区二区三区| 欧美制服丝袜第一页| 在线免费不卡电影| 欧美亚洲愉拍一区二区| 欧美吞精做爰啪啪高潮| 91国偷自产一区二区开放时间 | 国产精品色在线| 国产精品天美传媒| 欧美国产1区2区| 亚洲国产精品二十页| 亚洲国产精品精华液2区45| 欧美国产禁国产网站cc| 国产精品日产欧美久久久久| 欧美韩日一区二区三区| 国产精品天干天干在线综合| 中文字幕精品一区二区三区精品| 国产欧美一区视频| 国产精品久久久久久久久久免费看 | 一本色道久久综合亚洲二区三区| 亚洲国产精品久久久久久女王| 国内视频一区| 亚洲看片网站| 国产精品久久久一区二区| 麻豆av一区二区三区久久| 色妞www精品视频| 欧美午夜一区二区三区| 欧美精品少妇一区二区三区| 欧美一区中文字幕| 精品88久久久久88久久久 | 青青草一区二区三区| 捆绑紧缚一区二区三区视频| 狠狠色综合日日| 大美女一区二区三区| 欧美在线免费| 伊人久久综合| 亚洲一区日本| 欧美午夜精品久久久久久超碰| 91精品欧美一区二区三区综合在| 精品国精品国产|