首页
学习
活动
专区
工具
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中的拖动效果。

腾讯云相关产品推荐:无

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

相关·内容

  • 手势魅力-设置一个触摸菜单

    本篇为一移动端博文,个人觉得这篇外文还可以,就翻译了一下,最终实现的一个效果是:用手势创建一个本地菜单(点击一菜单按钮,实现设置一个触摸侧滑,滑动滑出效果,如下文中的gif图所示),主要涉及的知识点有移动端三大触摸事件(touchstart,touchmove,touchend),触摸属性,以及实现侧边栏动画,在处理移动端点击,拖动,滑动时,是不得要考虑用户的触摸手势,判断手指在页面上到底是点击还是滑动的,利用原生js的方法封装点击,移动,抬起功能函数,尽管移动(手机)端与pc端有很多相似之处,但还是有很多要注意的地方的,如果你想获得该Demo的源码,复制该标题后台回复[手势魅力-设置一个触摸菜单]就可以了的,初次翻译,如果有误导的地方,欢迎路过的老师,多提意见和指正,如果你想阅读英文原文,扫文末下方二维码或者跳转到指定链接就可以了的

    04
    领券