SVG组使用其外来对象子项进行拖动,并使用gsap draggable允许其外来对象子项的内容也可进行拖动

时间:2019-06-06 11:36:35

标签: draggable gsap greensock

我正在使用gsap draggable来实现svg组及其内容(包含foreignObject)的拖动,并允许其内容(foreignObject内的内容)也可以独立拖动。

我要实现的是拖动灰色框时,其内容(青色单元格)也应被拖动,并且还允许我也仅拖动青色单元格。

如果我评论子级拖动功能,那么父子级拖动就可以了,但是当我添加子级拖动时,它无法正常工作。

下面编写的代码基于我在gsap表单上找到的示例。

Draggable.create('.node-container');

Draggable.create('.tablecelldiv', {
  onPress: function(event){
    event.stopPropagation();
  }
});
.tablecelldiv {
 
  background: cyan;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.20.2/utils/Draggable.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.20.2/TweenMax.min.js"></script>

<svg width="900" height="250">
  <g class="node-container">
   <rect height="290" width="290" fill="grey"></rect>
        <foreignObject width="230" height="220" y="62" x="12.5" style="overflow: hidden" >
          <div className="tablebodydiv">
            <div class="tablecelldiv">row 1</div>
            <div class="tablecelldiv">row 2</div>
            <div class="tablecelldiv">row 3</div>
            <div class="tablecelldiv">row 4</div>
          </div>
        </foreignObject>
      </g>
</svg>

编辑:我已经在MS Edge和FireFox浏览器上测试了此代码,并且运行良好。我相信它可能是GSAP或Google Chrome实施中的错误。

0 个答案:

没有答案