我正在使用此代码来使用拖放选择,选择正方形的动画不如您使用Windows或OSX的拖放选择所获得的平滑,我不确定为什么会这样,但是我认为可能与fromEvent()
有关。是否可以通过覆盖默认的fromEvent()
或使用计时器(例如setTimeout())来每隔x毫秒检查和更新鼠标位置,而不是使用Event的默认值,来使其更平滑?
更新:我认为这是因为用mousemove检查鼠标位置太慢了,因为如果我快速移动鼠标并且它不在组件中,那么鼠标的最后一个位置就不会在组件的边缘,因此我需要以某种方式提高mousemove检查的速度。
我正在使用可观察的位置跟踪鼠标位置:
this.mouseMoveSubscription = fromEvent(this.elementRef.nativeElement, 'mousemove')
.subscribe((e: MouseEvent) => {
this.dragSelectEnd.left = e.clientX - this.elementRef.nativeElement.offsetLeft;
this.dragSelectEnd.top = e.clientY - this.elementRef.nativeElement.offsetTop;
this.updateHighlightSelector();
});
并使用以下命令将其呈现在页面上:
<div class="highlight-selection"
*ngIf="highlightSelectorActive"
[style.left.px]="highlightSelector.left"
[style.top.px]="highlightSelector.top"
[style.height.px]="highlightSelector.height"
[style.width.px]="highlightSelector.width"></div>
答案 0 :(得分:0)
不确定这是否是您要寻找的东西。
去抖时间
使用debouncetime或debounce运算符可以解决您的平滑问题,直到需要的时间它才调用函数或执行pr: # @pr
mov edi, offset .L.str
mov esi, 1
mov edx, 10
xor eax, eax
jmp printf # TAILCALL
pr1: # @pr1
mov edi, offset .L.str
mov esi, 1
mov edx, 10
xor eax, eax
jmp printf # TAILCALL
.L.str:
.asciz "%d %d"
。
callback