`

javascript实现简单的拖拽

阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>简易拖放效果</title>
</head>

<body>


<script>

var isIE = (document.all) ? true : false;

var $ = function (id) {
return "string" == typeof id ? document.getElementById(id) : id;
};

var Class = {
create: function() {
return function() { this.initialize.apply(this, arguments); }
}
}

var Extend = function(destination, source) {
for (var property in source) {
destination[property] = source[property];
}
}

var Bind = function(object, fun) {
return function() {
return fun.apply(object, arguments);
}
}

var BindAsEventListener = function(object, fun) {
return function(event) {
return fun.call(object, (event || window.event));
}
}

function addEventHandler(oTarget, sEventType, fnHandler) {
if (oTarget.addEventListener) {
oTarget.addEventListener(sEventType, fnHandler, false);
} else if (oTarget.attachEvent) {
oTarget.attachEvent("on" + sEventType, fnHandler);
} else {
oTarget["on" + sEventType] = fnHandler;
}
};

function removeEventHandler(oTarget, sEventType, fnHandler) {
    if (oTarget.removeEventListener) {
        oTarget.removeEventListener(sEventType, fnHandler, false);
    } else if (oTarget.detachEvent) {
        oTarget.detachEvent("on" + sEventType, fnHandler);
    } else {
        oTarget["on" + sEventType] = null;
    }
};

//拖放程序
var SimpleDrag = Class.create();
SimpleDrag.prototype = {
  //拖放对象,触发对象
  initialize: function(drag) {
this.Drag = $(drag);
this._x = this._y = 0;
this._fM = BindAsEventListener(this, this.Move);
this._fS = Bind(this, this.Stop);
this.Drag.style.position = "absolute";
addEventHandler(this.Drag, "mousedown", BindAsEventListener(this, this.Start));
  },
  //准备拖动
  Start: function(oEvent) {
this._x = oEvent.clientX - this.Drag.offsetLeft;
this._y = oEvent.clientY - this.Drag.offsetTop;
addEventHandler(document, "mousemove", this._fM);
addEventHandler(document, "mouseup", this._fS);
  },
  //拖动
  Move: function(oEvent) {
this.Drag.style.left = oEvent.clientX - this._x + "px";
this.Drag.style.top = oEvent.clientY - this._y + "px";
  },
  //停止拖动
  Stop: function() {
removeEventHandler(document, "mousemove", this._fM);
removeEventHandler(document, "mouseup", this._fS);
  }
};

</script>

<div id="idDrag" style="border:5px solid #0000FF; background:#C4E3FD; width:50px; height:50px;"></div>

<script>
new SimpleDrag("idDrag");

</script>

</body>
</html>
转载 原文出自:http://www.cnblogs.com/cloudgamer/archive/2008/11/17/1334778.html
分享到:
评论

相关推荐

    javaScript实现DIV简单拖拽

    javaScript实现DIV简单拖拽

    【JavaScript源代码】JavaScript实现简单拖拽效果.docx

    JavaScript 实现简单的拖拽效果是网页交互中常见的一种功能,主要通过监听鼠标事件来实现。在本实例中,我们将分析如何使用 JavaScript 和 CSS 创建一个可拖动的蓝色盒子。 首先,我们需要创建 HTML 结构,这里包含...

    【JavaScript源代码】JavaScript实现简单的拖拽效果.docx

    JavaScript 实现简单的拖拽效果是前端开发中常见的一种交互功能,它可以增强用户的体验,使得用户可以自由地在页面上移动某个元素。以下是如何使用 JavaScript 实现这一效果的详细步骤: 首先,我们需要设置页面的...

    JavaScript 实现图片拖拽

    以上就是使用JavaScript实现图片拖拽的基本步骤和关键代码。通过这种方式,我们可以为用户提供更直观、更具互动性的网页体验。在实际项目中,还可以根据需求进行扩展,例如添加图片缩放、旋转等更多功能。

    Javascript实现网页元素拖拽排序

    总的来说,JavaScript实现网页元素拖拽排序涉及HTML的`&lt;draggable&gt;`属性、JavaScript的事件监听和DOM操作。通过这些技术,我们可以创建出交互性强、用户体验佳的拖拽排序功能,适用于各种列表、网格等布局的网页元素...

    javascript 实现的层拖动简单实例

    在这个“javascript 实现的层拖动简单实例”中,我们将探讨如何利用JavaScript来让一个div元素(通常被称为浮动层或浮窗)具有拖动能力。 首先,我们要理解`div`在HTML中的角色。`div`是一个块级元素,它允许开发者...

    简易而又灵活的Javascript拖拽框架

    本篇文章将详细探讨“简易而又灵活的Javascript拖拽框架”,即Drag5。 首先,Drag5框架的核心特性在于其简单性和灵活性。简单性体现在它易于理解和使用,开发者无需深入理解复杂的底层实现,即可快速上手。灵活性则...

    JavaScript简单拖拽效果(1)

    本文详细介绍了使用JavaScript实现简单拖拽效果的完整过程,包括关键的DOM事件和逻辑处理,适合对前端开发感兴趣的读者学习和参考。 在实现拖拽功能时,通常涉及三个关键的鼠标事件:`mousedown`、`mousemove`和`...

    javascript实现可以拖动的浮动窗口;源代码

    JavaScript是一种广泛应用于网页和网络...总的来说,实现可拖动的浮动窗口涉及到JavaScript事件处理、DOM操作和简单的数学计算。通过学习和理解这个过程,开发者可以创建出更多互动性的网页元素,提升用户的交互体验。

    【JavaScript源代码】JS实现圆形进度条拖拽滑动.docx

    ### JavaScript 实现圆形进度条拖拽滑动 #### 技术背景 在现代网页开发中,动态元素和交互式设计是提升用户体验的关键因素之一。其中,进度条是一种常见的UI组件,用于显示操作或任务的完成程度。传统的线性进度条...

    jquery实现简单图片的拖动

    "jquery实现简单图片的拖动"这个主题是关于如何利用jQuery的API来实现图片元素的拖放功能,这是一个常见的交互设计,使得用户可以通过鼠标拖动图片在页面上自由移动。 在jQuery中,实现图片拖动主要涉及到`...

    纯js实现可拖拽和点击的悬浮球

    本文将深入讲解如何利用JavaScript实现这样的功能。 首先,我们需要创建HTML结构,用于显示悬浮球。一个简单的悬浮球可以由一个`&lt;div&gt;`元素来表示,我们可以通过CSS设置其样式,使其看起来像一个球体: ```html ...

    JavaScript鼠标拖拽

    下面是一个简单的拖拽实现过程: 1. **选择目标元素**:在HTML中,我们需要一个可以被拖动的元素,例如一个div。例如: ```html ; height: 100px; background-color: blue;"&gt; ``` 2. **添加事件监听器**:在...

    jquery简单实现拖拽效果

    本文将深入探讨如何使用jQuery实现简单的拖拽效果,让你的网页元素能够随心所欲地移动。 首先,拖拽效果的核心在于捕获鼠标事件,包括`mousedown`(鼠标按下)、`mousemove`(鼠标移动)和`mouseup`(鼠标释放)。...

    javascript实现简单的鼠标拖动效果实例

    这个实例展示了如何通过JavaScript来创建一个简单的拖动元素的功能,让用户可以自由地在页面上移动指定的元素。以下是对这个实例的详细解析: 首先,我们需要一个HTML结构,包含一个可以被拖动的元素。在这个例子中...

    利用JavaScript实现并页面元素的拖拽.pdf

    本文主要研究了使用JavaScript实现页面元素的拖拽功能,通过自定义模板和标记的方式来实现界面和代码的分离。下面是本文的详细知识点: 1. 自定义模板的概念:自定义模板是指在页面中预先定义的一些占位符,以便在...

    实现HTML5 SVG拖拽的JavaScript库插件

    然而,SVG元素默认并不支持拖放功能,这就需要借助于JavaScript库来实现。 "svg.draggy.js" 是一个专为SVG元素设计的JavaScript库,它的主要目标是添加拖拽交互到SVG图形上。这个库提供了一个简单易用的API,使得...

    JavaScript实现的简单拖拽效果

    JavaScript实现的简单拖拽效果涉及了...通过以上的知识点介绍,我们可以看到JavaScript实现简单拖拽效果的原理和细节,以及如何在实际开发中应用这些技术。掌握这些知识,对于前端开发者来说是非常重要的基础技能。

    javascript实现完美拖拽效果

    在JavaScript中实现完美的拖拽效果是一项常见的交互设计任务,尤其在开发网页相册或可操作的用户界面时。通过理解和应用基本的DOM操作、事件处理以及位置计算,我们可以创建一个平滑且功能丰富的拖放体验。下面将...

    table实现列宽的拖动效果

    综上所述,"table实现列宽的拖动效果"涉及到前端开发中的多个技术点,包括HTML表格、JavaScript事件处理、DOM操作、CSS样式设计、响应式布局、性能优化以及用户交互设计等。通过学习和实践这些知识,开发者可以提升...

Global site tag (gtag.js) - Google Analytics