可拖曳

<!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>
<title>简单实用的可拖曳窗口</title>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<script type="text/javascript" src="/ajaxjs/jquery-1.6.2.min.js"></script>
<script type="text/javascript">
$(function(){
//样式
$("#drag").css({"position":"absolute","top":"100px","left":"100px","border":"1px solid #789","width":"150px","height":"90px","background":"#988f82","cursor":"move"})
    /*+++++ 拖曳效果 ++++++
    *原理:标记拖曳状态dragging,坐标位置iX、iY
    *   mousedown:fn(){dragging = true:记录起始坐标位置,设置鼠标捕获}
    *   mouseover:fn(){判断如果dragging = true,则当前坐标位置 - 记录起始坐标位置,绝对定位的元素获得差值}
    *   mouseup:fn(){dragging = false:释放鼠标捕获,防止冒泡}
    */
    var dragging = false;
    var iX, iY;
    $("#drag").mousedown(function(e) {
        dragging = true;
        iX = e.clientX - this.offsetLeft;
        iY = e.clientY - this.offsetTop;
        this.setCapture && this.setCapture();
        return false;
    });
    document.onmousemove = function(e) {
        if (dragging) {
            var e = e || window.event;
            var oX = e.clientX - iX;
            var oY = e.clientY - iY;
            $("#drag").css({"left":oX + "px", "top":oY + "px"});
            return false;
        }
    };
    $(document).mouseup(function(e) {
        dragging = false;
        $("#drag")[0].releaseCapture();
        e.cancelBubble = true;
    })
})
</script>
</head>
<body>
<div id="drag"></div>
</body>
</html>
时间: 2024-10-14 18:36:24

可拖曳的相关文章

JavaScript 拖曳和居中问题

今天遇到了一个问题,是这样的,有一个div盒子,实现盒子居中,居中的样式是这样的见下 #box{ width:300px; height:150px; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); background:#333; border:2px solid #ccc; } 上述样式是可以实现样式居中的,问题是我拖曳div盒子不能到右边界和下边界,但是能想左边界和右边界移出盒子的宽高的一半.不知原

jQuery-UI实现折叠面板里的控件拖曳

因一个项目的需要,需要在前端界面实现在折叠面板里拖曳控件到工作区的功能(类似于Android和MFC的可视化界面开发),于是就开始学起了强大的jQuery,发现里面的jQuery-UI有折叠面板.按钮等控件,但当在折叠面板里拖曳按钮时,按钮的拖曳范围只能是折叠面板内部,不能拖到工作区.所以这里绕了个弯实现了一下: 主要的实现过程是:首先在控件表明生成一个副本,每次拖曳控件的时候拖曳的都是副本,当拖曳完成,即鼠标弹起后,原控件表面就又生成一个副本待下次拖曳.(其他一些细节写在了注释里.) 代码:

javascript实现拖曳与拖放图片

其实对于drag和drop拖曳与拖放事件IE很早以前就支持这个操作了,我们先来看看HTML5中新增的拖放API. 在HTML5中想要实现拖放操作,至少要做以下操作: 1. 将要拖放的对象元素的draggable属性设置为true,即(draggable="true"),这样才能拖放该元素,且img元素与a元素(必须指定href)默认允许拖放操作.如代码: <li draggable="true">Item 1</li> 2. 编写与拖放有关的

JS中dataTransfer对象在拖曳操作中的妙用。

dataTransfer对象提供了对于预定义的剪贴板格式的访问,以便在拖曳操作中使用. 通俗的讲就是在拖曳操作的过程中,我们可以用过dataTransfer对象来传输数据,以便在拖曳操作结束的时候对数据进行其他的操作. 对象属性 dropEffect:设置或返回拖放目标上允许发生的拖放行为.如果此处设置的拖放行为不再effectAllowed属性设置的多种拖放行为之内,拖放操作将会失败.该属性值只允许为"null"."copy"."link"和&

js面向对象练习(一):拖曳效果

html: <!DOCTYPE html> <html> <head> <meta charset= "utf-8"> <title></title> <!--<script src="jquery-1.9.1.min.js"></script>--> <style> #drag{ background: red; width: 200px; he

js实现模态框的拖曳功能

项目中需要对模态框进行拖曳,以便对比模态框和页面中的元素,现demo如下: 1 <!-- saved from url=(0066)https://guguji5.github.io/bs-modal-dragable/bs-modal-dragable.html --> 2 <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8&qu

jquery.dragsort实现列表拖曳、排序

在一次工作中需要将功能模块实现拖曳并且排序,并且将排序结果保存到数据库,用户下次登录后直接读取数据库排序信息进行显示.LZ找了好多插件,最后发现 jquery.dragsort 这款插件是最好使用的,使用简单,配置方便. 下面我将演示如何使用该插件: 一.导入js.该插件是基于jQuery开发的,所以我们除了要导入jquery.dragsort.js外还需要导入jQuery. 二.HTML部分 <div class="model_main"> <ul class=&q

【jQuery基础编程】jQuery-UI实现折叠面板里的控件拖曳

因一个项目的需要,需要在前端界面实现在折叠面板里拖曳控件到工作区的功能(类似于Android和MFC的可视化界面开发),于是就开始学起了强大的jQuery,发现里面的jQuery-UI有折叠面板.按钮等控件,但当在折叠面板里拖曳按钮时,按钮的拖曳范围只能是折叠面板内部,不能拖到工作区.所以这里绕了个弯实现了一下: 主要的实现过程是:首先在控件表明生成一个副本,每次拖曳控件的时候拖曳的都是副本,当拖曳完成,即鼠标弹起后,原控件表面就又生成一个副本待下次拖曳.(其他一些细节写在了注释里.) 代码:

简单实用的可拖曳窗口

<!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> <title>简单实用的可拖曳窗口</title&