WEB前端开发学习----11. JQuery 实现简单的拖拽效果

拖拽效果在网页中很常见。实现起来也不难。记录一下今天实现的简单效果。

拖拽演示

快速拖动时,会出现问题,以后修改.

说白了,就是3个点击事件。

1. 按下鼠标左键, 触发点击事件,此时记录下可以得到鼠标相对于拖动控件的位置(当前鼠标位置-控件位置);

2. 拖动鼠标,触发移动事件,可以计算出鼠标移动的距离(当前鼠标位置-之前算出的相对位置),也就是拖拽控件所移动的距离;

3. 鼠标抬起,结束拖动。

在JQ中,event.pageX    event.pageY可以获取鼠标的位置,相对于文档左上角。

如图:

注意,在jq获取控件的位置时:

x=event.pageX-parseInt($("#box").css("left"));
y=event.pageY-parseInt($("#box").css("top"));

要去掉单位px.

但是 在修改控件位置时,不要加单位,也不要加引号,也不用加单位px!

dx=event.pageX-x;
dy=event.pageY-y;
//不要加引号!!!
$("#box").css({
"top":dy,"left":dx
})

完整代码:

[html] view plaincopy

    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" xml:lang="en">
    3. <head>
    4. <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    5. <title>弹出层,移动</title>
    6. <script src="jq11.js"></script>
    7. <script>
    8. //x,y为鼠标离控件左上角的相对位置
    9. var x=0;
    10. var y=0;
    11. var flag=false;
    12. $(document).ready(function(){
    13. $("button").click(function(){
    14. $("#box").show();
    15. })
    16. $("h3").mousedown(function(event){
    17. //判断鼠标左键
    18. if(event.which==1){
    19. flag=true;
    20. x=event.pageX-parseInt($("#box").css("left"));
    21. y=event.pageY-parseInt($("#box").css("top"));
    22. }
    23. })
    24. $("h3").mousemove(function(event){
    25. if(flag){
    26. //dx,dy鼠标移动的距离
    27. var dx=0;
    28. var dy=0;
    29. dx=event.pageX-x;
    30. dy=event.pageY-y;
    31. //不要加引号!!!
    32. $("#box").css({
    33. "top":dy,"left":dx
    34. })
    35. }
    36. })
    37. $("h3").mouseup(function(event) {
    38. flag=false;
    39. });
    40. $("span").click(function(){
    41. $("#box").hide();
    42. //关闭之后,应返回原来的位置
    43. $("#box").css({
    44. top:120,left:120
    45. })
    46. })
    47. })
    48. </script>
    49. </head>
    50. <style type="text/css">
    51. *{margin:0px;
    52. padding: 0px;}
    53. body{
    54. font-size: 14px;
    55. padding: 100px;
    56. }
    57. #box{
    58. width:500px;
    59. height:400px;
    60. border:3px ridge #ccc;
    61. display: none;
    62. box-shadow: 2px 2px 20px #888888;
    63. position:absolute;
    64. top:120px;
    65. left:120px;
    66. }
    67. #box h3{
    68. height:30px;
    69. line-height: 30px;
    70. background-color: #ABCDEF;
    71. padding-left: 10px;
    72. padding-right:10px;
    73. color: white;
    74. cursor: move;
    75. }
    76. #box span{
    77. float: right;
    78. font-size: 12px;
    79. cursor: pointer;
    80. color:red;
    81. }
    82. #box p{
    83. height:350px;
    84. padding: 10px;
    85. box-shadow: 3px 3px 10px #aaa inset;
    86. background: #FAFAFA;
    87. }
    88. </style>
    89. <body>
    90. <button>弹出</button>
    91. <div id="box">
    92. <h3><span>关闭</span>鼠标左键拖动</h3>
    93. <hr/>
    94. <p>有点小问题,不能快速的拖动,慢慢拖吧。。。以后有时间修改</p>
    95. </div>
    96. </body>
    97. </html>
时间: 2024-11-08 22:16:06

WEB前端开发学习----11. JQuery 实现简单的拖拽效果的相关文章

2018web前端学习路线,详谈web前端开发学习路线

近几年IT业可谓是发展火热,而且新生了很多的职业.在这众多的新生职业中备受瞩目的当属web前端工程师了,web前端在IT行业真正受到重视的时间不超过五年,但是web前端的发展前景却是非常的可观,好前景高薪资吸引了众多的人投入到前端开发的学习当中去,想学好web前端,这份web前端开发学习路线分享给你. 好的学习方法和掌握好正确的学习路线可以让我们的学习达到事半功倍的效果,如果你新手想要学习web前端的话,那么这份前端的学习路线图很适合你.这份学习路线的课程涵盖JavaScript.HTML5.C

web前端开发学习路线图分享,详谈2018web前端开发学习路线

近几年IT业可谓是发展火热,而且新生了很多的职业.例如安卓开发工程师.iOS开发工程师.在这众多的新生职业中备受瞩目的当属web前端工程师了,前端工程师薪资高,就业发展前景好,更多的人选择了这一职业成为自己的发展方向,想要自己成为一名合格的web前端工程师,web前端开发学习路线图值得大家去看看.挺适合大家借鉴来学习的.web前端课程包括了几个方面的内容: 1.学习HTML,这是最简单,最基本的是要掌握div,formtable.Ulli.P.跨度.字体这些标签,这些都是最常用的,尤其是DIV和

WEB前端开发学习:源码canvas 雪

WEB前端开发学习:源码canvas 雪 双旦节要到了,程序员们为了响应气氛,特别用代码制作了动态雪花,WEB前端开发学习的初学者们一起跟着案例做一遍吧! <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body style="overflow: hidden;margin:

jquery监听事件on写法以及简单的拖拽效果

引子——关于jquery的某些写法 我先不对监听事件做解释,我们先来看下jquery的一些写法吧!我们最常用的是jquery的css()方法,相信大家都会用! 假如用css设置一个属性,我们写法如下: $("#haorooms").css("width","100px"); 假如多个属性呢?我们写法如下: $(".demo").css({"height":"100px","ba

Web 前端开发学习之路(入门篇)

字数1374 阅读4622 评论0 喜欢49 以前学习过一段时间的web前端开发,整理了一些我看过的/我认为比较好的学习资料(网站.书籍).不要问我为啥没有进阶版,我只是一条产品汪而已,求轻喷.== 以下引用知乎 @李路 的话. 以我的经验,大部分技术,熟读下列四类书籍即可. 入门,用浅显的语言和方式讲述正确的道理和方法,如head first系列全面,巨细无遗地探讨每个细节,遇到疑难问题时往往可以在这里得到理论解答,如Definitive Guide/Programming xx系列实践,结合

web前端开发学习课程大纲路线图及学习方法分享

想学好web前端开发,要学会阅读别人优秀的代码.web前端开发思想并不是统一固定不变的,阅读别人代码的过程就是间接的在向别人学习,这一过程中可以学习别人的开发思路,不同的人思路是不一样的,如果别人写的代码很优秀.很简单.且运行和性能上有很大的优势,就有很多可以借鉴的地方. 以下这份web前端学习路线图适合所以零基础的学员学习,都是从浅入深,没有基础的同学跟着视频教程及课程大纲一步一步的学习是可以很好的掌握的. 那么想要学好html5前端开发,那么需要掌握的专业技术有: 第一阶段:前端页面重构 内

web前端开发学习路线

首先分享一下我的经验,想做好一件事,必须要花费一些功夫,然后是多学.多思.多练.多交流.多总结,发现自己的问题,然后一定要克服,在状态不好的情况下,往往要及时调整.新手学习前端的话,一定要想想为什么要学习它,是出于一种什么心态,然后定位好自己,多向大牛请教,多教一些没有自己水平高的人,那样往往能让自己成长的快,切勿急躁.初学可以看一些入门视频教程,之后可以买一些书,做一些小项目,要学会投资,分析自己的现状及能力,实时调整,一定要有自己的想法,懂得创新.在这里一定要对自己做分析,然后找出一种适合的

干货教程 | Web前端开发学习入门指南

互联网的高速发展,让企业对于Web前端开发人员的需求越来越大,想要进入这行的人自然也逐渐增多.很多新手在进入这行时都会徘徊.犹豫.疑问,想学习又怕学不好,下面就和Web前端小编一起来看看. 1.HTML的学习 超文本标记语言(HyperTextMark-up Language简称HTML)是一个网页的骨架,无论是静态网页还是动态网页,最终返回到浏览器端的都是HTML代码,浏览器将HTML代码解释渲染后呈现给用户.因此,我们必须掌握HTML的基本结构和常用标记及属性. HTML的学习是一个记忆和理

web前端开发学习视频教程下载(百G)

1.妙味WEB前端开发全套视频教程 链接: http://pan.baidu.com/s/1bf1Ow2 密码: 2yyu 2.极客学院前端教程(html5 Bootstrap Nodejs) 链接: http://pan.baidu.com/s/1eQFcHoe 密码: iem6 3.前端与移动开发基础视频(h5\css3\html\css) 链接: http://pan.baidu.com/s/1c1wiSQc 密码:2cp4 4.2015前端工程师培训视频教程(html5\UI\JS\JQ