gpt4 book ai didi

rxjs - 拖放自动滚动(dom-autoscrolling)

转载 作者:行者123 更新时间:2023-12-04 20:28:56 25 4
gpt4 key购买 nike

我有一个列表 text元素并希望在我拖动新元素时自动将我的列表滚动到底部。

一旦我拖放列表中的元素一次,下面的示例就可以正常工作。

我相信我需要打一次 observable拖之前。

我正在使用 draguladom-autoscrolling .

import {takeUntil} from "rxjs/internal/operators/takeUntil";
import * as autoScroll from 'dom-autoscroller';

const drake = this.dragulaService.find(this.dragulaBagName);
this.dragulaService.drag.pipe(
takeUntil(this.destroyed$),
).subscribe(([bag, movingEl, containerEl]) => {
autoScroll(containerEl.parentNode, {
margin: 20,
pixels: 10,
scrollWhenOutside: true,
autoScroll: function () {
return this.down && drake && drake.drake && drake.drake.dragging;
}
});
});

显然, this.down在回调中 autoScroll一开始就设置为false...一旦拖放一次,它就可以正常工作。

有任何想法吗?

最佳答案

尝试使用 (mousedown)="initAutoScroll()"

initAutoScroll(){
const drake = this.dragulaService.find(this.dragulaBagName);
this.scroll = autoScroll(
containerEl.parentNode,
{
margin: 30,
maxSpeed: 25,
scrollWhenOutside: true,

autoScroll: function () {
return this.down && drake.drake.dragging;
}
});
}


this.dragulaService.dragend.asObservable().subscribe(value => {
if (this.scroll) {
this.scroll.destroy(); // destroy when don't use auto-scroll
}
});

关于rxjs - 拖放自动滚动(dom-autoscrolling),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51396506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com