【问题标题】:jQuery Drag and Drop on Polygon Shapes using css clip-pathjQuery 使用 CSS 剪辑路径拖放多边形形状
【发布时间】: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 将它们剪裁,但边界是框。因此,要做到这一点,您需要查看 Mouse xy 的值。您必须计算三角形区域并确定当项目被放下时鼠标是否在该区域内。

标签: javascript jquery css jquery-ui clip-path


【解决方案1】:

你们彼此有 3 个 div。 您必须在 HTML 中使用 svg,并在 SVG 中创建元素。

    <svg xmlns="http://www.w3.org/2000/svg" ...>
      //content
    </svg>

例如,请看这里https://jsfiddle.net/EXqPa/31/

希望有帮助

【讨论】:

  • 请使用jquery拖放。我的问题是使用拖放。在单击或鼠标输入时,它适用于 div 剪辑路径和 svg,但使用 jquery 调用事件拖放所有相交元素。请检查我的代码。
  • 我检查了你的代码。您彼此有很多 DIV,因此您无法知道悬停的 div 是什么。您必须使用 svg html 才能知道元素是悬停
【解决方案2】:

我为你做了另一个 JsFiddle。带 svg。

我使用:

<svg width='100%' height='50%' viewBox="0 0 120 120" preserveAspectRatio="none">
  <polygon class="right" points="51 37, 100 100, 100 1"/>
  <polygon class="left" points="0 1,0 100,49 37"/>
  <polygon class="bottom" points="50 37, 1 100, 99 100"/>
</svg>

看这里http://jsfiddle.net/32T2a/313/

【讨论】:

  • 感谢您的努力。如果您将滑动我按钮留在红色区域,它会返回消息悬停蓝色。而它假设为悬停读取返回警报。
  • 如果你使用 jquery 拖放,你会得到两次调用 drop 事件。这也是我使用 div 所面临的 svg 的相同行为
  • 所以,我们必须删除transform: translate(-50%, -50%);为您的光标。我找到了这个解决方案! :) jsfiddle.net/32T2a/314
  • 太棒了。由于转换翻译有什么问题?你认为它也适用于 jquery droppable 而不是 mouseup 事件吗?我的要求是实现 jquery 可拖放而不是鼠标事件
  • 因为如果你点击圆圈而不移动它会返回所有页面的警报,并会调用你点击圆圈右侧为绿色的警报,当点击左半边时它会提示红色,当点击下半部分它会提示蓝色。
猜你喜欢
  • 2021-03-10
  • 2018-12-16
  • 2020-09-22
  • 1970-01-01
  • 1970-01-01
  • 2015-01-10
  • 2021-07-01
  • 2017-01-23
  • 2021-03-14
相关资源
最近更新 更多