我有一个使用transform缩放的div,其中有另一个可拖动的div。当transform div的缩放比例不是1时,可拖动的div基本上与鼠标分离。JSFiddle here
我对javascript没有任何控制权(它是嵌入在页面中的第三方组件),有没有CSS解决方案,或者可能有一个“全局”jquery解决方案来设置容器到主体?
相关CSS我方:
-webkit-transform: scale(1.5);
在第三方组件中调用了JQuery
$('.draggable').draggable();
2条答案
按热度按时间mnemlml81#
查看jQuery UI -可拖动文档(https://api.jqueryui.com/draggable/)。
看起来你唯一不去定制的机会就是用
drag event
修改数据(更多信息请访问https://api.jqueryui.com/draggable/#event-drag)。该文件引用了以下内容:
在拖动过程中移动鼠标时触发,在当前移动发生之前立即触发。
示例显示如下:
jQuery可拖动示例-拖动事件
使用指定的拖动回调初始化可拖动对象:
将事件侦听器绑定到拖动事件:
通过用户界面位置限制移动:
并且可能改变示例以获取位置并将其减少1. 5。
mspsb9vt2#
这是您的代码的变通方法/替代方法,可能不是您要查找的内容...
一开始我以为你的问题是因为缩放不会自动缩放元素所占的原始空间,并导致了一些 mousepos 偏移差异。通常这可以通过计算相对于所应用缩放的 * 正 * 或 * 负 *
margin
来纠正。正表示放大,负表示缩小,并将其分配给缩放后的元素margin
。但是,使用您的 Fiddle 进行测试,结果并不理想,因此我选择解决这个问题:
--scale-factor: 1.5
),而不是transform: scale(..)
或scale: ..
calc(..)
相对于--scale-factor
的当前值列出所有相关尺寸代码片段、Fiddle、Codepen。