[可拖动DIV]刚开通博客顺便就写了点东西!

说说我自己的思路

首先需要一个初始div

 div {
            border: 1px #333 solid;
            width: 200px;
            height: 50px;
        }
<div id="od">我是一个可拖动div</div>

然后就是鼠标事件,想象一下拖动这个过程需要用到哪些事件。。。

1、鼠标按钮按下事件mousedown

2、鼠标按钮松开事件mouseup

3、鼠标移动事件mousemove

第一步:给div添加鼠标按钮按下事件,这个事件需要完成以下事情

一、获取div到浏览器顶部和左边的距离

二、获取鼠标到浏览器顶部和左边的距离

三、计算出鼠标到div顶部和左边的距离(这里不知道有没有可以直接获取鼠标到div顶部和左边的距离的方法,有兴趣的可以去找一下)

        var div_top = $(obj).offset().top;//div距离浏览器顶部的高度
            var div_left = $(obj).offset().left;//div距离浏览器左边的高度
            var mouse_top = e.clientY;//鼠标距离浏览器顶部的高度
            var mouse_left = e.pageX;//鼠标距离浏览器顶部的高度
            var mouse_divtop = mouse_top - div_top;//鼠标距离div顶部的高度
            var mouse_divleft = mouse_left - div_left;//鼠标距离div左边的高度

四、给Body添加鼠标移动事件(body就是鼠标移动的一个区域,这个可以根据需求做修改),该事件需要完成以下事情

1、隐藏初始div

2、删除新创建的div

3、在body上创建新的div

$("body").bind("mousemove", function (e) {
                $("#od").hide();
                $(".td").remove();
                var html = ‘<div class="td">‘ + $("#od").text() + ‘</div>‘;
                $("body").append(html);
                $(".td").css({ "margin-top": e.clientY - mouse_divtop, "margin-left": e.pageX - mouse_divleft });
            });

第二步:给Body添加鼠标按钮松开事件,这个事件需要完成以下事情

一、删除Body绑定的鼠标移动事件

二、给新创建的div绑定鼠标按钮按下事件,这个事件要完成的操作就和第一步的第四点一样

 $("body").unbind("mousemove");
            $(".td").bind("mousedown", function (e) {

            });

这样就OK了,是不是很简单!也欢迎大家找出不足的地方!这是本人第一次写随笔。不喜勿喷,嘿嘿!

下面贴出全部代码

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5     <title>可拖动DIV</title>
 6     <script src="../js/jquery-1.9.1.min.js"></script>
 7     <style>
 8         div {
 9             border: 1px #333 solid;
10             width: 200px;
11             height: 50px;
12         }
13
14         .td {
15             border: 1px #333 solid;
16             width: 200px;
17             height: 50px;
18         }
19     </style>
20 </head>
21 <body>
22     <div id="od">我是一个可拖动div</div>
23 </body>
24 </html>
25 <script>
26     $(document).ready(function () {
27         $("#od").mousedown(function (e) {
28             Mousetd(this, e);
29         });
30         $("body").mouseup(function () {
31             $("body").unbind("mousemove");
32             $(".td").bind("mousedown", function (e) {
33                 Mousetd(this, e);
34             });
35         });
36         function Mousetd(obj, e) {
37             var div_top = $(obj).offset().top;//div距离浏览器顶部的高度
38             var div_left = $(obj).offset().left;//div距离浏览器左边的高度
39             var mouse_top = e.clientY;//鼠标距离浏览器顶部的高度
40             var mouse_left = e.pageX;//鼠标距离浏览器顶部的高度
41             var mouse_divtop = mouse_top - div_top;//鼠标距离div顶部的高度
42             var mouse_divleft = mouse_left - div_left;//鼠标距离div左边的高度
43             $("body").bind("mousemove", function (e) {
44                 $("#od").hide();
45                 $(".td").remove();
46                 var html = ‘<div class="td">‘ + $("#od").text() + ‘</div>‘;
47                 $("body").append(html);
48                 $(".td").css({ "margin-top": e.clientY - mouse_divtop, "margin-left": e.pageX - mouse_divleft });
49             });
50         }
51     });
52 </script>
时间: 2024-12-10 18:22:46

[可拖动DIV]刚开通博客顺便就写了点东西!的相关文章

刚开通博客希望以后能在这里学到知识

年轻人现在缺乏的就是坚持 遇到一点困难就停滞不前 大学不是让你颓废  荒废的地方 一个真正的人才能在大学里面学到很多包括知识 技术 和社会交往能力 刚开通博客希望以后能在这里学到知识,码迷,mamicode.com

开通博客,分享技术心得!

开通博客,分享技术心得! 2013-05-13 开通博客,分享技术心得!,布布扣,bubuko.com

开通博客啦!

在某人的驱动下终于开通了博客. 学习前端已经有一个学期之久了,开始学习时想着是不是要开个博客记录下自己的学习内容,可是善于用笔记录的我总觉得在电脑上总结不如在纸上总结来得快,于是就用小本子记录下每天学到的新知识,这里主要包括了CSS和JS的知识.后面经过更深入的接触前端,发现前端不只有这些,你还要学习后端语言比如PHP,还要学习Ajax等等,这些知识同步学习就很难在一个本子上很好的分开记录,于是想想,还是开个博客吧,它会帮我分好类的. 这篇用来纪念我开通博客的日子,希望我能坚持记录下去! 好了,

为什么现在才开通博客

为什么现在才开通博客 毕业到现在工作也快两年的时间了,2016年离开学校就开始走上正式的工作岗位,一直从事前端开发相关的工作,毕业那年,前端工作还好找,现在对前端岗位要求很高,我从一开始的前端小白,混到现在还是个前端小白,虽然在项目上能完成功能的开发,但我觉得还是个小白,因为有还太多的不会,比如一些简单的功能自己写还有困难,各种百度,查看各种博客和社区之后,能自己实现了,但是这些也是用别人的代码完成自己的功能需要罢了,算不上会. 之前,工作上的一些工作和笔记,都是记在电脑上的,或者有道笔记上,有

2018年11月1日开通博客园感想!

为什么开通博客园?对啊?我也想问自己这个问题.我想,还是为了自己心中那份不安分吧.至于自己心中的那小目标,我一直在奋斗着.....,我感觉在向我招手,我在一直在努力着.归结一点就是使自己to Strong,better Strong. 学习是一个持续的过程,由于学习知识的混乱,我认为有必要将自己的学习的知识系统梳理下.一是为了自己心中那份永不磨灭的念想,二是为了对自己的学习知识进行归纳.总结,整理.一路后来,从懵懂状态一知半解,到现在学习东西感觉上手很容易,我想可能是和自己所从事行业有关系.从C

开通博客啦

刚刚开通博客,发篇文章测试一下, 这是一个test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test,test 原文地址:https://www.cnblogs.com/fxiong/p/10075893.ht

记录开通博客20181229

回顾 2018已经尾声了,打从14年7月份正式入职码农这行四年半时间了吧?一段能让人从小白成长为大神的时间里,生生混成了只会业务逻辑和增删改查的程序员,很是心塞塞的赶脚.想写博客想了很久了,然鹅一直没行动,入园一年多直到今天才开通博客,总是感觉自己一个地地道道没有文艺细胞的理科生写不出来什么东西.事实也确实如此,写到这里已经花了几个小时时间了,真的不知道怎么下手开始写.看了几个小时的博客文才想着先记录下,有位大佬文章里写的好,模仿是最常见的学习手段,我也学着来一个往年回顾再来个2019的flag

热烈庆祝蓝启旭大佬开通博客

AKIOI的大佬蓝启旭开通博客啦!!!!! 点一下,看一年,读文章不花一分钱!!!! 点这里!!https://www.cnblogs.com/perisino/ 大佬TQL%%%%% 原文地址:https://www.cnblogs.com/buringstraw/p/10262414.html

祝贺开通博客园

我这个人是比较懒的. 因为总是在网上搜索一些文档,所能查找到文章最多的无非就是CSDN和博客园了.前者无法评价,感觉稍微有点用的东西,就会收费.这不符合开源的精神!现在的人感觉都很浮躁,所有的事情总是与利益挂钩,实在是太让人感觉无奈了.遇到一篇好文章或者好工具,真的想下载了,但是动辄上百元的包月费用实在是不想花这冤枉钱. 于是我遇到了博客园. 这里还是很靠谱的,文章中所涉猎到的软件,都给了链接,用不着去付费了.所以,我就想在这里安个家,学习一下前辈的文章,有心得了,直接发在上面就行. 为新开通博