【发布时间】:2016-06-28 04:02:41
【问题描述】:
我正在开发一个应用程序,但在实现 jQuery 拖放时遇到了问题。请看Code。
我正在开发的是使用 css Clip Path 的多边形形状。当我拖动 Swipe Me Circle 并放在红色上时,它会返回“Dropped on Red”的警报,但它也会返回“Dropped on Blue”的警报,而 Circle 会掉在红色上。
感谢您的帮助。
我的 jQuery 代码是:
$(function() {
$( "#draggable" ).draggable();
$( "#RedTriangle" ).droppable({
drop: function( event, ui ) {
alert("Dropped On Red");
}
});
$( "#GreenTriangle" ).droppable({
drop: function( event, ui ) {
alert("Dropped On Green");
}
});
$( "#BlueTriangle" ).droppable({
drop: function( event, ui ) {
alert("Dropped On Blue");
}
});
});
【问题讨论】:
-
您收到两个警报的原因是所有 div 的形状都是矩形,即使您将它们视为三角形。因此,div 在某些区域重叠,并且当放入这些区域时,两个 div 都会触发事件。
-
同样的问题使用 svg
-
正如建议的那样,
divelements 是框,使用 CSS 将它们剪裁,但边界是框。因此,要做到这一点,您需要查看 Mousex和y的值。您必须计算三角形区域并确定当项目被放下时鼠标是否在该区域内。
标签: javascript jquery css jquery-ui clip-path