У меня возникают некоторые проблемы, когда я перетаскиваю и отпускаю щелчок, событие, похоже, не останавливает свое распространение, как говорится в «Проблеме № 54 - исправить: предотвратить распространение щелчка сразу после перетаскивания».
У меня не получается воспроизвести в 2.0.0-beta.3. Можете ли вы дать мне шаги воспроизведения?
Привет! Спасибо за ответ. Я пытаюсь прокрутить элементы "divs", возможно, это неправильный путь.
Вот код:
<drag-scroll class="drag-scroll center" #dragScroll scrollbar-hidden='true' drag-scroll-y-disabled='true' snap-disabled='true'>
<div drag-scroll-item *ngFor="let ah of article_list">
<col-article [article]="ah"></col-article >
</div>
</drag-scroll>
Я только нажимаю на изображение, перетаскиваю его, но когда я его отпускаю, оно просто перенаправляет меня на ссылку на изображение. есть ли другая возможность добавить событие "dragend"?
Есть ли разница между прокруткой простых изображений и элементов «div»? Остальная часть модуля работает правильно, и это действительно хорошая работа.
Я пытался воспроизвести проблему в демо, и это происходит, когда перетаскиваемый элемент является ссылкой. В демоверсии, например, если вы измените любое изображение из
<img _ngcontent-c6="" src="assets/img/c3po.png">
к
<a href="http://anyurl.com"><img _ngcontent-c6="" src="assets/img/c3po.png"></a>
у него такое же поведение, как и в моем проекте.
Я надеюсь, что это поможет, привет!
Я реализовал небольшую обработку в своем коде, чтобы избежать этой проблемы.
HTML:
`
<div dragScroll (reachesLeftBound)="leftBoundStat($event)" (reachesRightBound)="rightBoundStat($event)" #nav >
<div class=" slide-mes" *ngFor="let item of items " (click)="doAny(item)" >
</div>
</div>
`
машинопись:
`
@ViewChild('nav', {read: DragScrollDirective}) ds: DragScrollDirective;
clickEnable = true;
constructor( ) {
}
@HostListener('mousedown', ['$event'])
onMousedown(event) {
this.clickEnable = true
}
leftBoundStat(reachesLeftBound: boolean) {
this.leftNavDisabled = reachesLeftBound;
this.clickEnable = false;
}
rightBoundStat(reachesRightBound: boolean) {
this.rightNavDisabled = reachesRightBound;
this.clickEnable = false;
}
doAny(item){
if(this.clickEnable){
//do what you whant on click here
}
}
`
Привет Гильерме! Спасибо за Ваш ответ! Это работает, когда вы не достигаете ни одной из границ? Потому что в моей реализации у меня есть много элементов для прокрутки, и они все равно распространяются, когда я отпускаю щелчок, например, в середине, а не конкретно в границах, и события границ создаются только тогда, когда вы достигаете одного из них ( левый или вправо).
события границ создаются, когда вы прокручиваете div, поместите в него console.log, чтобы увидеть.
Спасибо! Это сработало! Но мне пришлось адаптировать все дочерние компоненты для прослушивания событий мыши. Вот почему я попросил эту функцию в самом модуле.
Привет @leogilardi6 , извините за поздний ответ. Я был завален работой.
Я попытался изменить https://github.com/bfwg/ngx-drag-scroll/blob/develop/demo/app/home/home.component.html#L4 -L12 на
<drag-scroll class="demo-one"
drag-scroll-y-disabled="true"
scrollbar-hidden="true"
(reachesLeftBound)="leftBoundStat($event)"
(reachesRightBound)="rightBoundStat($event)"
#nav
>
<a drag-scroll-item *ngFor="let image of imagelist" href="https://www.google.com"><img [src]="'assets/img/' + image" (click)="clickItem(image)"/></a>
</drag-scroll>
но у меня не получилось воспроизвести в версии 2.0.0-beta.3
пробовали играть с последней версией?