我正在使用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实施中的错误。