【发布时间】:2022-02-10 16:55:46
【问题描述】:
标记的中心应该正好位于三角形的中心。
如图所示,它并不完全在质心中(它有点偏右,可能在底部)。
我正在使用 jquery ui .draggable 方法。这是我的标记 css:
#marker {
position: absolute;
background: #808080;
border-radius: 50%;
width: 50px;
height: 50px;
cursor: grab;
}
这是我的 jquery 脚本:
$(document).ready(function () {
var triangle = $("#triangle");
var marker = $("#marker");
var coord = getTriangleCoordinates(triangle);
var center = centroid(coord);
$("#marker").hover(
function () {
// over
$(this).css("filter", "brightness(0.8)");
},
function () {
// out
$(this).css("filter", "brightness(1)");
}
);
$("#marker").mouseup(function () {
$(this).css("background", "salmon");
});
$("#marker").draggable({
drag: function (event, ui) {
var offset = ui.offset;
if (!bounded(offset, coord)) return false;
}
});
marker.css("left", Math.round(center.left) - 5 + "px");
marker.css("top", Math.round(center.top) - 5 + "px");
console.log(coord);
});
如何使标记的中心的默认位置恰好在质心中,同时仍然能够拖动标记?
我尝试了transform: translate(-50%, 0)css 属性。虽然它固定了位置,但它完全搞砸了拖动功能。
感谢任何帮助。谢谢!!
【问题讨论】:
-
单个元素的 CSS 本身并没有告诉我们什么。我们甚至不知道绝对定位是指什么,视口或定位的祖先。请显示您的问题的正确minimal reproducible example。
标签: javascript jquery css