JavaScript面向对象的程序开发之拖拽Demo讲解——xyp_hf
来源:互联网 发布:ssd数据迁移 编辑:程序博客网 时间:2024/05/06 05:38
<!DOCTYPE html><html lang="en"><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>面向对象的拖拽</title><style>#div1{width:100px;height:100px;background:red;position:absolute;}</style><script type="text/javascript">/* //先用普通方式写个拖拽 window.onload = function(){ var oDiv = document.getElementById('div1'); var disX = 0; var disY = 0; oDiv.onmousedown = function(){ var ev = ev || window.event; disX = ev.clientX - oDiv.offsetLeft; disY = ev.clientY - oDiv.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 = null; document.onmouseup = null; } return false; }; }*//* // 再变型 var oDiv = null; var disX = 0; var disY = 0; window.onload = function(){ //3、提取全局变量 oDiv = document.getElementById('div1'); //4、将onload中非赋值语句放到初始化函数当中,并在此调用 init(); } function init(){ //1、取消函数嵌套函数,将此处的函数拿出去 oDiv.onmousedown = fnDown; } function fnDown(){ var ev = ev || window.event; disX = ev.clientX - oDiv.offsetLeft; disY = ev.clientY - oDiv.offsetTop; //2、取消函数嵌套函数,将此处的函数拿出去,在此处调用 document.onmousemove = fnMove; document.onmouseup = fnUp; return false; } 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 = null; document.onmouseup = null; }*///再写成面向对象的方式window.onload = function(){ var d1 = new Drag('div1'); d1.init();};function Drag(id){ this.oDiv = document.getElementById(id); this.disX = 0; this.disY = 0;}Drag.prototype.init = function(){ var This = this; this.oDiv.onmousedown = function(ev){ var ev = ev || window.event; This.fnDown(ev); return false; };};Drag.prototype.fnDown = function(ev){ var This = this; this.disX = ev.clientX - this.oDiv.offsetLeft; this.disY = ev.clientY - this.oDiv.offsetTop; document.onmousemove = function(ev){ var ev = ev || event; This.fnMove(ev); }; document.onmouseup = this.fnUp;};Drag.prototype.fnMove = function(ev){ 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></body></html>
阅读全文
0 0
- JavaScript面向对象的程序开发之拖拽Demo讲解——xyp_hf
- JavaScript面向对象的程序开发之选项卡Demo讲解——xyp_hf
- JavaScript面向对象的程序之拖拽组件的开发Demo——xyp_hf
- JavaScript面向对象的程序之弹框组件的开发Demo——xyp_hf
- C++ — 面向对象之继承的详细讲解
- 《JavaScript》——面向对象之对象的创建
- 《JavaScript》——面向对象之对象的创建
- 面向对象的JavaScript开发
- JavaScript面向对象编程之——类的概念
- 《JavaScript》——面向对象之原型
- 《JavaScript》——面向对象之继承
- 《JavaScript》——面向对象之继承
- 《JavaScript》——面向对象之原型
- JavaScript之——面向对象
- Delphi之面向对象程序开发
- 面向对象的javascript之对象操作
- javascript面向对象开发
- Javascript面向对象开发
- codeforces 266B(Queue at the School) Java
- linux标准输入输出
- getRequestUI and getRequestURL
- NodeJS中,Express获取request所传递的数据方式
- ARKit support for iOS via Unity-ARKit-Plugin
- JavaScript面向对象的程序开发之拖拽Demo讲解——xyp_hf
- 字符串与数字相加的问题
- 1146: 吃糖果
- apache支持cgi运行.py报错client denied by server configuration: /xxx.py
- 解决ios上audio不能自动播放的问题以及监听audio播放状态
- 集群管理平台安全问题
- ncurses程序设计介绍
- windows环境下创建一个Angular2项目
- Oozie运行ExampleClassNotFound异常