JS实现拖拽小案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>简单的拖拽</title>
    <link rel="stylesheet" href="../toolkit/reset.min.css">
    <style>
        #box{
            height: 200px;
            width: 200px;
            background-color: #e277ff;
            position: absolute;
            cursor: move;
        }
    </style>
</head>
<body>
<div id="box"></div>
<script>
    var box=document.getElementById("box");
    function drag(e) {
        e=e||window.event;
        var _this=this;
        var mouseX=e.clientX,
                mouseY=e.clientY,
                boxL=this.offsetLeft,
                boxT=this.offsetTop;
        document.onmousemove=function (e) {
            e=e||window.event;
            var curMouseX=e.clientX,
                    curMouseY=e.clientY,
                    curBoxL=curMouseX-mouseX+boxL,
                    curBoxT=curMouseY-mouseY+boxT;

            var minW=0,maxW=((document.documentElement.clientWidth||document.body.clientWidth)-_this.offsetWidth);
            var minH=0,maxH=((document.documentElement.clientHeight||document.body.clientHeight)-_this.offsetHeight);
            if(curBoxL<=minW){
                curBoxL=minW;
            }else if(curBoxL>=maxW){
                curBoxL=maxW
            }
            if(curBoxT<=minH){
                curBoxT=minH;
            }else if(curBoxT>=maxH){
                curBoxT=maxH;
            }

            _this.style.left=curBoxL+"px";
            _this.style.top=curBoxT+"px";
        };
        document.onmouseup=function () {
            document.onmousemove=null;
        }
    }
    box.onmousedown=drag;
</script>
</body>
</html>
时间: 2024-10-10 01:51:41

JS实现拖拽小案例的相关文章

jQuery UI API - 可拖拽小部件(Draggable Widget)(转)

所属类别 交互(Interactions) 用法 描述:允许使用鼠标移动元素. 版本新增:1.0 依赖: UI 核心(UI Core) 部件库(Widget Factory) 鼠标交互(Mouse Interaction) 注释:让被选元素可被鼠标拖拽.如果您不只是拖拽,而是拖拽 & 放置,请查看 jQuery UI 可放置(Droppable)插件,为可拖拽元素提供了一个放置目标. 快速导航 选项 方法 事件 addClasses appendTo axis cancel connectToS

jquery.dragsort.js 实现拖拽过程遇到的问题

1.在IE下第一次拖动的时候,被拖动的li元素会不显示,查了很多资料发现是因为在IE中定位出了问题,li标签还在,只是位置计算出错.解决的办法是在li的css样式中position设置为relative.这个问题在火狐等其他浏览器是不存在的. 2.如果拖动的li所在容器出现了滚动条,当滚动条滑到最下面的时候,拖拽下面的li的浮动层位置会出现偏移.解决的办法是在jquery.dragsort.js中,this.draggedItem.css({ top: top, left: left });这句

gridster.js–可拖拽的网格插件

gridster.js–可拖拽的网格插件 gridster.js 是一个 jQuery 插件用来构建直观的可拖放的布局,支持多列布局,你还可以动态的添加和删除表格中的元素. \ 主要特性 1.只依赖jQuery 2.支持元素的添加和删除 3.文档比较全 4.拥有测试用例,你可以查看你的浏览器的测试结果 5.比较适合开发益智游戏 如何使用 引入类库,包括jQuery和gridster.js: <script src="http://ajax.googleapis.com/ajax/libs/

用js实现拖拽功能

平常我们在网上可以看到,按住一张图片,然后拖到另一处去,前天在网上看石川(Blue)老师 的js课堂,有见过这个,写下来与大家分享一下: 1,先画个div小红块,样式设置如下: #div1{width: 200px; height: 200px; background-color: red; position:absolute;} 这里的positon属性很重要,如果没有这个,根本拖不动你可以试一下. 2,然后需要用到三个事件,onmousedown, onmousemove, onmouseu

一个用js实现拖拽的小例子

代码: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 7 <style> 8 9 body { 10 margin: 0; 11 } 12 13 #rect { 14 width: 100px; 15 height: 100px; 16 b

JS—实现拖拽

JS中的拖拽示例:    1)实现拖拽思路:当鼠标按下和拖拽过程中,鼠标与拖拽物体之间的相对距离保持不变    2)实现拖拽遇到的问题:        问题1:当鼠标按下移动过快时,离开了拖拽的物体时,这时拖拽物体将不再随着鼠标移动                因为拖拽的div太小了,这时我们可以将在拖拽物体上的mousemove事件放到document上面                同时将mouseup也改为document上面的事件                IE下直接用obj.s

js 利用jquery.gridly.js实现拖拽并且排序

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src='javascripts/jquery.js' type='text/javascript'></script> <script src='javascripts/jqu

js实现拖拽框

纯js版的拖拽框,该效果很简单 直接看代码..... <!doctype html> <html> <head> <meta charset="urf-8"/> <style> #box{ border:1px solid #ccc; position:absolute; border-radius:4px; border-shadow:10px 10px 5px #888888; } #box h1{ margin:0; p

JS简易拖拽效果

原理:注册mousemove事件,使元素跟随鼠标挪动:注册mouseup事件,移除mousemove事件,使得松开鼠标时元素不再跟随移动,能够固定在指定位置.在mousedown事件中注册mousemove事件和mouseup事件,这样便可完成一次完整的拖拽. 重点:IE中setCapture()的应用.它的作用是捕捉所有的MouseEvent,设置完成后,即使鼠标移出窗口注册的鼠标事件仍然能够被触发.它在此处的作用是当鼠标移动过快越出元素的边界使得原本将要失效的mousemove事件依然能够发