jQuery实现面板拖拽

矫情吗;* 2022-01-31 07:11 414阅读 0赞

一.实现功能

1.首先页面有一个面板或者对话框,有长和宽,可以设置为一个div。

2.当把鼠标over到div的某个位置时,鼠标的箭头图片变为一个拖拽的图片。

3.接2,按下鼠标后,随着鼠标的移动,面板跟着移动。

4.接3,鼠标up后,面板不再跟随鼠标移动。

二.HTML代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <div class="body">
  9. <div class="title">标题</div>
  10. <div class="content"></div>
  11. </div>
  12. </body>
  13. </html>

二.CSS代码

  1. .body{
  2. width:400px;
  3. height:300px;
  4. border:1px solid black;
  5. position:absolute;
  6. }
  7. .title{
  8. background-color:blue;
  9. color:white;
  10. height:30px;
  11. }

简易的效果图如下:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbmNvY280OQ_size_16_color_FFFFFF_t_70

三.JS代码

一个标签可以同时监听多个事件。

  1. <script src="jquery-3.4.1.js"></script>
  2. <script>
  3. $(".title").mouseover(function(){
  4. //鼠标over到.title位置
  5. $(this).css("cursor","move");
  6. }).mousedown(function(e){
  7. //鼠标按下
  8. var old_mouse = e||window.event;
  9. //原鼠标坐标
  10. var old_m_x = old_mouse.clientX;
  11. var old_m_y = old_mouse.clientY;
  12. //原div坐标
  13. var parent_x=$(this).parent().offset().left;
  14. var parent_y=$(this).parent().offset().top;
  15. $(this).mousemove(function(e){
  16. //鼠标拖动时,新鼠标坐标
  17. var new_mouse = e||window.event;
  18. var new_m_x = new_mouse.clientX;
  19. var new_m_y = new_mouse.clientY;
  20. //新div坐标
  21. var x = parent_x+(new_m_x - old_m_x);
  22. var y = parent_y+(new_m_y - old_m_y);
  23. //改变面板位置
  24. $(this).parent().css("left",x+"px");
  25. $(this).parent().css("top",y+"px");
  26. }).mouseup(function(){
  27. //鼠标提起后,解绑鼠标移动事件
  28. $(this).unbind("mousemove");
  29. });
  30. })
  31. </script>

发表评论

表情:
评论列表 (有 0 条评论,414人围观)

还没有评论,来说两句吧...

相关阅读

    相关 jQuery实现面板

    一.实现功能 1.首先页面有一个面板或者对话框,有长和宽,可以设置为一个div。 2.当把鼠标over到div的某个位置时,鼠标的箭头图片变为一个拖拽的图片。 3.接