首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Jquery多个div相同的类,只拖动"this“div

JQuery是一个流行的JavaScript库,用于简化HTML文档遍历、事件处理、动画效果等操作。在处理多个相同类的div元素时,可以使用JQuery的选择器和事件处理方法来实现只拖动当前点击的div。

首先,给所有需要拖动的div元素添加相同的类名,例如"drag"。然后,使用JQuery的事件处理方法来监听鼠标按下、移动和释放的事件。

以下是一个示例代码:

HTML代码:

代码语言:html
复制
<div class="drag">Div 1</div>
<div class="drag">Div 2</div>
<div class="drag">Div 3</div>

JavaScript代码:

代码语言:javascript
复制
$(document).ready(function() {
  var dragging = false;
  var dragElement;

  $(".drag").mousedown(function(e) {
    dragging = true;
    dragElement = $(this);
    var position = dragElement.position();
    var offsetX = e.pageX - position.left;
    var offsetY = e.pageY - position.top;
    dragElement.css("position", "absolute");
    dragElement.css("left", position.left + "px");
    dragElement.css("top", position.top + "px");
    dragElement.css("margin", "0");
    dragElement.css("z-index", "9999");
    dragElement.css("opacity", "0.8");
    dragElement.css("cursor", "move");
    dragElement.css("pointer-events", "none");
    dragElement.css("user-select", "none");

    $(document).mousemove(function(e) {
      if (dragging) {
        dragElement.css("left", (e.pageX - offsetX) + "px");
        dragElement.css("top", (e.pageY - offsetY) + "px");
      }
    });

    $(document).mouseup(function() {
      if (dragging) {
        dragging = false;
        dragElement.css("opacity", "1");
        dragElement.css("cursor", "auto");
        dragElement.css("pointer-events", "auto");
        dragElement.css("user-select", "auto");
      }
    });
  });
});

上述代码中,首先使用$(document).ready()函数来确保页面加载完成后再执行代码。然后,使用$(".drag")选择器选中所有具有"drag"类的div元素,并使用.mousedown()方法来监听鼠标按下事件。

在鼠标按下事件处理函数中,将dragging变量设置为true,表示正在拖动。同时,将当前点击的div元素赋值给dragElement变量,并获取其初始位置和鼠标点击位置的偏移量。

接下来,通过修改div元素的CSS样式,将其设置为绝对定位,并根据初始位置和偏移量设置其left和top属性。还可以设置其他样式,如z-index、opacity等,以提高拖动效果。

在鼠标移动事件处理函数中,判断是否正在拖动,如果是,则根据鼠标移动的位置更新div元素的位置。

最后,在鼠标释放事件处理函数中,将dragging变量设置为false,表示拖动结束,恢复div元素的样式。

这样,就实现了只拖动当前点击的div元素。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券