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

当图片的绝对位置为css,而父div的位置为相对位置时,如何使图片可拖动?

要使图片在父div中可拖动,可以通过以下步骤实现:

  1. 首先,确保父div的位置属性设置为相对定位(relative),这样才能相对于父div进行定位。
  2. 确保图片的位置属性设置为绝对定位(absolute),这样才能根据父div进行定位。
  3. 为图片元素添加鼠标事件监听器,包括mousedown、mousemove和mouseup事件。
  4. 在mousedown事件中,记录鼠标点击时的初始位置(clientX和clientY)。
  5. 在mousemove事件中,计算鼠标移动的距离(clientX和clientY的变化量),并将图片的位置更新为初始位置加上移动距离。
  6. 在mouseup事件中,取消鼠标事件监听器,停止拖动。

以下是一个示例代码:

HTML:

代码语言:html
复制
<div id="parentDiv" style="position: relative; width: 400px; height: 400px; border: 1px solid black;">
  <img id="dragImg" src="your_image_url" style="position: absolute; top: 0; left: 0; width: 100px; height: 100px;">
</div>

JavaScript:

代码语言:javascript
复制
var dragImg = document.getElementById("dragImg");
var parentDiv = document.getElementById("parentDiv");
var isDragging = false;
var initialX, initialY;

dragImg.addEventListener("mousedown", function(event) {
  isDragging = true;
  initialX = event.clientX - dragImg.offsetLeft;
  initialY = event.clientY - dragImg.offsetTop;
});

document.addEventListener("mousemove", function(event) {
  if (isDragging) {
    var newX = event.clientX - initialX;
    var newY = event.clientY - initialY;
    dragImg.style.left = newX + "px";
    dragImg.style.top = newY + "px";
  }
});

document.addEventListener("mouseup", function() {
  isDragging = false;
});

这样,当鼠标按下并移动时,图片将跟随鼠标移动,实现了图片在父div中的拖动效果。

腾讯云相关产品推荐:无

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

相关·内容

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券