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

在拖动时获取Div的新左侧位置百分比

,可以通过以下步骤实现:

  1. 首先,需要使用前端开发技术来实现拖动功能。可以使用HTML、CSS和JavaScript来创建一个可拖动的Div元素。
  2. 在HTML中,创建一个Div元素,并为其设置一个唯一的ID,以便在JavaScript中进行操作。
代码语言:txt
复制
<div id="myDiv" style="width: 200px; height: 200px; background-color: red;"></div>
  1. 在JavaScript中,使用事件监听器来捕获鼠标拖动事件。可以使用mousedown、mousemove和mouseup事件来实现拖动功能。
代码语言:txt
复制
var myDiv = document.getElementById("myDiv");
var isDragging = false;
var initialX, initialLeft;

myDiv.addEventListener("mousedown", function(event) {
  isDragging = true;
  initialX = event.clientX;
  initialLeft = myDiv.offsetLeft;
});

document.addEventListener("mousemove", function(event) {
  if (isDragging) {
    var deltaX = event.clientX - initialX;
    var newLeft = initialLeft + deltaX;
    myDiv.style.left = newLeft + "px";
  }
});

document.addEventListener("mouseup", function() {
  isDragging = false;
});
  1. 在上述代码中,mousedown事件监听器用于开始拖动时记录初始位置和左侧偏移量。mousemove事件监听器用于计算鼠标移动的偏移量,并将新的左侧位置应用于Div元素。mouseup事件监听器用于结束拖动。
  2. 要获取Div的新左侧位置百分比,可以使用以下代码:
代码语言:txt
复制
var containerWidth = myDiv.parentNode.offsetWidth;
var newLeftPercentage = (newLeft / containerWidth) * 100;
console.log("新左侧位置百分比:" + newLeftPercentage + "%");

在上述代码中,通过获取Div元素的父容器宽度,将新的左侧位置转换为百分比。

这样,当拖动Div元素时,可以实时获取到其新的左侧位置百分比。

请注意,以上代码仅为示例,实际应用中可能需要根据具体需求进行适当的修改和优化。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云对象存储(COS)。

  • 腾讯云云服务器(CVM):提供弹性计算能力,可根据业务需求灵活调整配置,支持多种操作系统和应用场景。了解更多信息,请访问:腾讯云云服务器
  • 腾讯云对象存储(COS):提供安全、稳定、低成本的对象存储服务,适用于存储和处理各种类型的数据。了解更多信息,请访问:腾讯云对象存储
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

(touchstart,touchmove,touchend),触摸属性,以及实现侧边栏动画,处理移动端点击,拖动,滑动,是不得要考虑用户触摸手势,判断手指在页面上到底是点击还是滑动,利用原生js...您希望它在每次拖动移动多远? 这个手势方向:你想只能水平移动,或者还是垂直移动?也许是两个? 拖动完成后你想要发生什么?它会回到开始还是结束,取决于它在哪里结束?它是否考虑到速度?...当菜单打开,它可以关闭或保持打开状态 - 与动画一起 - 返回之前位置 如果它关闭了,那么它可以打开或者保持关闭状态,也可以动画返回之前 if ((translateX < (-menuWidth...也就是说,如果将其拖过宽度中间,并且拖动速度大于定义速度(也就是若手指拖动侧边栏超过该菜单栏本身宽度一半位置的话,或者拖动速度大于刚开始定义速度,则该侧边栏就关闭或者打开,若不是,则恢复初始前一个位置...(设置限制),也就是侧边栏菜单滑动位置 重叠计算(透明度变化,也就是用小数来计算,百分比值) 动画结束(菜单栏打开和关闭状态,菜单栏位置) 以下是本文陌生词汇(仅供参考) 1.

1.8K40

Vue拖拽组件开发实例

拖拽实现 始拖动获取到接触点相对于整个视图区坐标 clientX,clientY;获取元素距离视图上侧和左侧距离 initTop, initLeft;计算接触点距离元素上侧和左侧距离 elTop...=clientY-initTop, elLeft=clientX-initLeft; 拖动过程中:通过 currTop=clientY-elTop, currLeft=clientX-elLeft 实时获取元素距离视图上侧和左侧距离值...我们以向下拖拽来说: 首先,我们要在拖拽结束事件touchend中判断元素从拖动开始到拖动结束拖动距离。...设置为一个较大值,防止元素二次拖拽无效; 拖拽过程中:将元素即将落入位置那个li下divitem.isShow设置为true,其他li下divitem.isShow均设置为false; 拖拽结束...贴一段伪代码: touchStart(e){    // 获取元素距离视口顶部初始距离    initTop = e.currentTarget.offsetTop;    // 开始拖动获取鼠标距离视口顶部距离

4.4K130
  • 快速搭建一个代码在线编辑预览工具

    实现上,水平调节宽度和垂直调节高度原理是一样,以调节宽度为例,三个编辑器宽度使用一个数组来维护,用百分比来表示,那么初始就是100/3%,然后每个编辑器都有一个拖动条,位于内部左侧,那么当按住拖动某个拖动拖动逻辑如下...: 1.把本次拖动瞬间偏移量由像素转换为百分比; 2.如果是向左拖动的话,检测本次拖动编辑器左侧是否存在还有空间可以压缩编辑器,没有的话代表不能进行拖动;如果有的话,那么拖动增加本次拖动编辑器宽度..._last // 换算成百分比 let rx = (dx / this._containerSize) * 100 // 更新上一次鼠标位置 this....具体到对象或数组某项也使用div来实现换行,需要注意是如果是作为对象某个属性值的话,需要使用span来和属性及冒号显示同一行,此外,也要考虑到循环引用情况。...editor) { return } // 获取当前文档模型 let oldModel = editor.getModel() // 创建一个文档模型 let newModel

    4.1K20

    快速搭建一个代码在线编辑预览工具(实战)

    实现上,水平调节宽度和垂直调节高度原理是一样,以调节宽度为例,三个编辑器宽度使用一个数组来维护,用百分比来表示,那么初始就是100/3%,然后每个编辑器都有一个拖动条,位于内部左侧,那么当按住拖动某个拖动拖动逻辑如下...: 1.把本次拖动瞬间偏移量由像素转换为百分比; 2.如果是向左拖动的话,检测本次拖动编辑器左侧是否存在还有空间可以压缩编辑器,没有的话代表不能进行拖动;如果有的话,那么拖动增加本次拖动编辑器宽度..._last // 换算成百分比 let rx = (dx / this._containerSize) * 100 // 更新上一次鼠标位置 this....具体到对象或数组某项也使用div来实现换行,需要注意是如果是作为对象某个属性值的话,需要使用span来和属性及冒号显示同一行,此外,也要考虑到循环引用情况。...editor) { return } // 获取当前文档模型 let oldModel = editor.getModel() // 创建一个文档模型 let newModel

    4.4K30

    【汉诺塔】小游戏开发教程

    具体实现就是监听鼠标按下事件、鼠标移动事件、鼠标松开事件,鼠标按下移动改变该圆环transform: translate(x,y)属性来进行移动,鼠标松开判断当前圆环被拖动位置是否在三个圆环某一个区域内...> 鼠标按下事件处理函数主要逻辑是设置拖动标志位、缓存当前拖动一些数据,比如当前拖动圆环相关信息及鼠标按下位置信息...因为涉及到位置计算,所以需要获取实际DOM元素,先在模板里加上ref用于引用DOM: <div class="column...,把它们位置都相对于浏览器窗口左上角来计算,那么满足下面的条件圆环和柱子区域即相交: 1.圆环右侧距窗口左侧距离大于柱子区域左侧距窗口左侧距离、同时圆环左侧距窗口距离小于柱子区域右侧距窗口左侧距离...圆环不符合落下条件复位过渡不需要修改,加上transition就有过渡能力了,主要是符合落下条件从鼠标松开位置过渡到目标位置需要计算一下,看图: 因为拖动圆环transition坐标也就是

    1.9K10

    使用jQuery Draggable和Droppable实现拖拽功能

    但是测试拖动结果,发现元素只能在它所在container里面拖动,再往右拖动div会出现水平或垂直滚动条。不知道是不是自己参数设置上不对。container设置了overflow:auto。...只是默认不显示,只要用户开始拖拽左侧元素,它就出现了。当然这里需要自己手动添加很多代码。...父节点和子节点是相对,因为左侧树形结构节点可以是无限级,所以一个元素既可能是子节点元素,也会是父节点元素。通过监听鼠标的mousedown和mouseup事件,来判断用户拖动元素。...所以我们要计算出我们点击B元素位置,然后让draggableDiv拖动时候显示正确位置,然后拖动就是draggableDiv元素,用户看起来是拖动B节点元素。...完成“放”操作。可以从上图看出,我是将元素上边左边和下边缘左边存到一个数组里面。然后“拖”过程中,一直记录了拖动左边,放到右侧,就可以判断当前元素将要放位置。具体可以下载代码查看。

    2.8K60

    实现盒子宽度随鼠标位置而改变

    absolute; top:0; right:0; width: 6px; height: 100vh; z-index: 99; cursor: e-resize; } 实现思路 当鼠标拖动线...(drag-line)区域内按下,监听鼠标移动,获取鼠标移动实时距离 将这个距离加上leftCategory本来宽度,就是leftCategory随着鼠标移动宽度 代码实现 // 获取元素页面中位置...== null) { //当它上面有元素就继续执行 actualLeft += current.offsetLeft; //这是获取父元素距它父元素左上角距离...(){ // 获取当前拖动线body中位置 let dragLinePositionX = 0 // 鼠标实际移动距离 let mouseDistance...= 鼠标body位置减去 拖动线body中位置 mouseDistance = e.x - dragLinePositionX dragLine.style.transform

    99520

    低代码设计器自由布局拖动实现原理

    属性值如下所示: true:规定元素拖动 false:规定元素不可拖动 auto:使用浏览器默认行为 当我们元素元素标签中添加 draggable 属性,该元素就可以进行拖动操作了。...,我们会获取拖动事件对象 (e),拖动对象中我们能获取到一个重要属性 dataTransfer ,我们可以通过 dataTransfer dropEffect 属性控制被拖动元素放置行为...,上文中我们讲到,拖动元素以及目标元素可以设置一系列事件,那么我们就可以组件列表渲染,为每个组件设置一下 dragstart 事件,该事件中我们需要做如下处理: 设置拖动元素放置行为为移动,...拖动元素目标元素松手添加元素到画布,即将组件元数据添加到list2中,元素所对应元数据记录也了这个组件画面中坐标位置。 然后dragend事件中取听以上动作。...那拖动到画布中组件又是如何实现通过拖动灵活移动位置呢?

    4.3K30

    前端实现伸缩框

    JS 实现伸缩框 我们思路是这样子: 实现右下角三角拖动图标 计算伸缩框距离左边和顶部距离 监听鼠标的点击、拖动、抬起事件,记录鼠标当前相对视窗左上角点左侧距离和顶部距离 计算鼠标距离边框左侧距离...,即边框宽度 计算鼠标距离边框顶部距离,即边框新高度 限定边框最小距离,防止 icon 拖动隐藏 我们需要跟浏览器事件打交道,这里引入 RxJS ,(当然,读者可以手写原生 javascript...开始之前,我们还得熟悉下juejin.cn/post/708512…中 Element.getBoundingClientRect() 方法: 我们可以通过这个方法获取元素其左上角顶点相对可视窗口坐标...boundingEl = resizableDiv.getBoundingClientRect(); let _width = event.clientX - boundingEl.left; // 获取拖动宽度...let _height = event.clientY - boundingEl.top; // 获取拖动高度 resizableDiv.style.width = (_width >=

    25010

    拖拽牛逼,轻松实现一个自由拖拽组件

    揭秘页面设计器,我们重点分享了顺序排列布局组件拖动方式,那篇文章[2]评论中,有小伙伴问到自由布局实现,那么我们在这篇文章中来分享一下自由布局拖动实现原理,实现一个设计器组件自由拖动最简demo...,我们会获取拖动事件对象 (e),拖动对象中我们能获取到一个重要属性 dataTransfer ,我们可以通过 dataTransfer dropEffect 属性控制被拖动元素放置行为...,上文中我们讲到,拖动元素以及目标元素可以设置一系列事件,那么我们就可以组件列表渲染,为每个组件设置一下 dragstart 事件,该事件中我们需要做如下处理: 设置拖动元素放置行为为移动,...拖动元素目标元素松手添加元素到画布,即将组件元数据添加到list2中,元素所对应元数据记录也了这个组件画面中坐标位置。 然后dragend事件中取听以上动作。...那拖动到画布中组件又是如何实现通过拖动灵活移动位置呢?

    1.8K30

    Cypress web自动化30-操作窗口滚动条(scrollTo)

    前言 web页面的操作,有些元素不在窗口上显示,需滑动滚动条才能显示出来,Cypress 可以使用 scrollTo 操作滚动条位置。 可以根据窗口位置来滚动,也可以根据屏幕像素或百分比来滚动。...x(数字,字符串) 距离窗口/元素左侧距离(以像素为单位)或滚动到窗口/元素宽度百分比。 y(数字,字符串) 与窗口/元素顶部之间距离(以像素为单位)或滚动到窗口/元素高度百分比。...position 参数将窗口或元素滚动到指定位置。...// x 横向,距离左侧100像素,可以是数字100 cy.scrollTo('100') cy.wait(3000) // x 横向,距离左侧150像素,可以是字符串150 cy.scrollTo...", () => { cy.scrollTo('bottom', { duration: 3000 }) }) }) 但是当duration持续时间大于4秒会发生一个报错 :Cypress command

    1.5K20

    利用 WM_NCHITTEST 消息自定义窗口可拖动区域

    从上面的资料中可以看到,只要我们将某些固定区域响应 WM_NCHITTEST 消息处理函数中返回 HTCAPTION,那么微软就会帮我们实现拖动效果。...除了这些,需求中还有更变态想法,那就是窗口左侧 300 像素要求可拖动高度是 20 像素,右侧可拖动高度是 50 像素,这也能实现吗?...当然,其实你只需要根据左侧和右侧两个分割点,生成两个矩形区域,再响应 WM_NCHITTEST 消息只要鼠标在这两个矩形范围内,那么就返回 HTCAPTION,思路有了,如何实现呢?...GetClientRect(GetHWND(), &rcClient); rcClient.Deflate(m_shadow.GetShadowCorner()); // 左侧拖动区域位置...OnNcHitTest 方法(处理 WM_NCHITTEST 消息),根据窗口切分百分比 persent 值分割窗口左右两侧,生成左侧和右侧两个矩形 rect。

    2.1K20

    利用 WM_NCHITTEST 消息自定义窗口可拖动区域

    图片 从上面的资料中可以看到,只要我们将某些固定区域响应 WM_NCHITTEST 消息处理函数中返回 HTCAPTION,那么微软就会帮我们实现拖动效果。...除了这些,需求中还有更变态想法,那就是窗口左侧 300 像素要求可拖动高度是 20 像素,右侧可拖动高度是 50 像素,这也能实现吗?...当然,其实你只需要根据左侧和右侧两个分割点,生成两个矩形区域,再响应 WM_NCHITTEST 消息只要鼠标在这两个矩形范围内,那么就返回 HTCAPTION,思路有了,如何实现呢?...GetClientRect(GetHWND(), &rcClient); rcClient.Deflate(m_shadow.GetShadowCorner()); // 左侧拖动区域位置...OnNcHitTest 方法(处理 WM_NCHITTEST 消息),根据窗口切分百分比 persent 值分割窗口左右两侧,生成左侧和右侧两个矩形 rect。

    18630

    软件工程 怎样建立甘特图

    要创建任务行,请拖动位于框架底部中央绿色选择手柄。 两个现有任务之间添加新任务 右键单击要在其上方显示新任务行行中任意单元格,然后单击快捷菜单中“新建任务”。...给任务添加完成百分比指示器 右键单击要显示完成百分比位置左侧列顶部阴影部分,然后单击快捷菜单中“插入列”。 “列类型”下,单击“完成百分比”,然后单击“确定”。...随着任务进展,列中键入任务完成百分比。完成百分比指示器便会出现在任务栏中。 删除任务 右键单击表示要删除任务行中任意单元格,然后单击快捷菜单中“删除任务”。...目的 采取操作 重命名现有列 单击要重命名列标题,然后键入新名称。 添加预先设计数据列 右键单击要显示位置左侧列标题,然后单击快捷菜单中“插入列”。...“列类型”列表中,单击与要添加数据类型相对应列名称,然后单击“确定”。 添加您自己设计数据列 右键单击要显示位置左侧列标题,然后单击快捷菜单中“插入列”。

    5K20

    Dragdealer拖动组件

    如,将滑动器steps设置为3,将会只允许你将滑动器移动到左侧、中间和右侧3个位置。 bool snap=false 如果设置了steps数量,是否拖动过程中,是否让手柄立即卡到最近位置。...bool loose=false 是否拖动过程中放松包装器边界。这允许手柄稍微移出包装器边界一点,但一释放就滑动回到边界对齐位置。 number top=0 手柄和包装器边界之间上边距。...fn dragStopCallback(x, y) 和callback(x,y) 一样,但只真正拖动才触发,程序修改手柄位置不触发此事件。...fn dragStartCallback(x, y) 和dragStopCallback(x,y) 一样,但只拖动开始触发,参数值为拖动位置。...getValue 编程方式获取拖动组件值,返回值为 [x, y] 元组,它值等于正常回调映射值,不包括animationCallback回调。

    3.9K20

    JQuery EasyUI window 用法

    null iconCls 字符串 一个CSS类来显示面板中16×16图标 null width 数字 设置面板宽度 auto height 数字 设置面板高度 auto left 数字 设置面板左侧位置...href 字符串 一个远程URL加载数据,然后显示面板中 null loadingMessage 字符串 当加载远程数据面板中显示信息 Loading…                       ...height: 高度 onMove left,top 当面板移动之后触发 left: 左侧位置 top: 顶部位置 onMaximize none 当窗口最大化时候被触发 onRestore...设置面板大小和布局,这些选项包含以下属性: width: 面板宽度 height: 面板高度 left: 面板左侧位置 top: 面板顶部位置 move options 移动面板到一个位置...,这些选项包含以下属性: left: 面板左侧位置 top: 面板顶部位置 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/161190.html原文链接:

    1.2K20

    教你实现一个悬浮可拖动并在滑动页面时会自动收缩vue侧边组件按钮

    一、前言 实现一个悬浮可拖动且可自定义一个侧边按钮,实际业务开发中可以根据业务需要进行调整 效果图 最终实现效果,移动端收缩可以加点延时判断增加一下最终流畅性 二、创建组件 创建一个div...15 }, coefficientHeight: { // 从上到下距离比例 type: Number, default: 0.55 } }, 复制代码 created获取组件初始化位置...:首先获得页面宽度并减去按钮宽度及距离页面两侧距离得到按钮初始宽度位置,再通过页面高度*页面上下距离比例得到组件高度位置 created() { this.clientWidth = document.documentElement.clientWidth...,等于则代表了停止滑动,这时判断一下当前组件页面左侧还是右侧并调整相关距离参数,这样就实现了停止拖动按钮按钮自动回缩至侧边效果。...延时执行后当newValue等于window.scrollY,代表滚动结束 //console.log('滚动结束'); if (this.left === 15){ //按钮页面左侧

    4.8K40

    装B利器--自己实现一个表单编辑器?低代码平台?

    变速直线运动速度是位置函数对时间导数,加速度是速度对时间变化率。 关于低代码平台 低代码平台顾名思义,开发过程中尽量减少开发人员需要写代码数量。...页面布局及数据流 通常这些拖拽式低代码开发平台,布局样式如下: 左侧部分为组件,中间是内容展示区域,组件拖拽过来会展示在内容区域,右侧为参数配置区域,可以右侧为组件配置对应参数。...上图最左侧部分定义为Setters,用来封装组件可能接受参数,其最终表现是最右侧灰色部分表单。这个部分是可有可无,业务组件也可以直接接受参数,最右侧展示参数表单进行配置。...$store) // let dragged let self = this /* 拖动目标元素触发drag事件 */ document.addEventListener...false ) document.addEventListener( 'dragenter', function(event) { // 当可拖动元素进入可放置目标高亮目标节点

    30310

    使用 React-DnD 打造简易低代码平台

    ,其原理是通过鼠标事件 mousedown、mousemove、mouseup 或者 触摸事件 touchstart、touchmove、touchend,记录开始位置和结束位置、以达到拖拽传递数据效果...end collect 用于获得拖动状态状态,可以设置样式 低代码实现 回到我们低代码主题,我们来一起看下钉钉宜搭页面设计 主要分为3个区域:左侧组件区、中间设计区、右侧编辑区。...如果只看左侧组件区和中间设计区是否跟 react-dnd 官方 demo 很相似呢?...定义 JSON 接下来我们要: 定义可拖动组件类型 每个组件类型对应渲染组件 每个组件属性设置 先来定义几个可拖动字段吧,比如最基本数据类型,div、h1、 p 标签都是一个组件,那就我先定义出以下字段类型...希望这篇文章对大家有所帮助,也可以参考我往期文章或者评论区交流你想法和心得,欢迎一起探索前端。

    6K20
    领券