【发布时间】:2017-01-27 16:51:48
【问题描述】:
虽然赋予 div 相同的高度和宽度并将边框半径设置为 100% 会使 div“看起来”像一个圆形,但实际上它仍然是一个伪装的正方形。如何使 div 成为“真正的”圆圈?出于我的目的,我想让项目只能在我创建的圈子内放置。通过使 div 看起来像一个圆圈,项目仍然可以在边缘放置在圆圈之外。
$(".circle").droppable();
$(".drop").draggable({
containment: "parent"
});
.circle
{
width: 200px;
height: 200px;
border: 1px solid black;
border-radius: 100%;
display: inline-block;
}
.drop
{
border: 1px solid black;
display: inline-block;
}
.drop:hover
{
cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<div class="circle">
<div class="drop">
Drop Me<br>
Outside
</div>
</div>
【问题讨论】:
-
您必须使用圆形形式的 SVG。 CSS-Tricks 有一个很好的教程:css-tricks.com/using-svg 在 SVG 中,每个节点和线都是一个可以定位、定位和交互的元素,而不是带有圆形边框的方形 div 的伪圆。
-
以上评论是正确的。使用 CSS,您可以做的最好的事情是使用
clip-path将元素剪辑成一个圆圈,但我只是尝试了一个示例,即使使用剪辑路径,它也表现出与所讨论的相同的行为。您可能必须使用圆的半径进行一些计算,以找到沿其圆周的点,查看可放置框具有的点,然后采取相应的行动。 -
你看过答案了吗?
标签: javascript jquery html css