1.我在一个div中有一个项目
2.我拖动那些项目并放入时间线。
3.so在删除时。我想获得该特定项目的时间轴范围。
一个div代码中的项目:
<div class="timeline-elements-left-column">
<md-card class="timeline-elements-container"
ng-repeat="element in vm.elementAndStages">
<md-toolbar md-scroll-shrink class="timeline-selected-elements drag-object">
<div layout="row"
id="translation-icon-move"
ng-drag="vm.isDragging"
ng-mousedown="vm.StartDragging(element, event)"
ng-drag-data="element">
<div flex class="timeline-selected-elements-text">
<span>{{element.selectedElement.description}}</span>
</div>
<div class="timeline-selected-elements-icon">
<md-icon ng-show="element.selectedElement.collapsed"
class="zmdi zmdi-chevron-up"
ng-click="vm.Collapse(element.selectedElement)">
</md-icon>
<md-icon ng-hide="element.selectedElement.collapsed"
class="zmdi zmdi-chevron-down"
ng-click="vm.Collapse(element.selectedElement)">
</md-icon>
</div>
<div class="timeline-selected-elements-icon timeline-selected-elements-icon-drag">
<md-icon class="zmdi zmdi-more-vert"></md-icon>
</div>
</div>
</md-toolbar>
</md-card>
</div>
4.所以这里vm.StartDragging()是拖动事件的函数。
所以在开始拖动功能时
函数StartDragging(data:stage,event:any){
的console.log(this.timeline.getEventProperties(事件)); }
所以拖延工作正常。
在Html中删除代码
<div class="vis-group" ng-drop="true" ng-drop-success="vm.OnDropComplete($index, $data, $event,0)" ng-drag-stop="vm.StopDragging($event)" id="group0" style="height: 173px;">
这里滴水很好。
5.OnDropComplete功能代码
OnDropComplete(index:number,stage:any,event:any,groupId:number):void {
var indexToRemove: number = -1;
this.pendingChanges = [];
的console.log(this.timeline.getEventProperties(事件)); }
答案 0 :(得分:1)
这是您要解决的棘手任务。由于vis时间轴是动态的(可以缩放或滚动),因此您没有静态点,可以将其用作项目放置位置的引用点。 当我尝试解决类似的问题时,我使用document.getElementFromPoint()(使用drop事件中的坐标)和时间轴中的时间轴的组合来获得用户放置项目的最近点。使用这些信息,我会在特定的地方添加项目。
我希望这会让你走上正轨。