Ngx-drag-scroll: alternativa desabilitada de arrastar e rolar para crianças

Criado em 12 jun. 2018  ·  25Comentários  ·  Fonte: bfwg/ngx-drag-scroll

  • Estou enviando uma solicitação de recurso

Seria bom ter algo como o atributo drag-scroll-disabled que desabilitará a rolagem de arrasto naquele elemento e todos os seus elementos filhos. No momento, estou lutando para fazer drag-scroll-disabled="BOOL" ou drag-scroll-disabled="{{BOOL}}" e mouseenter, mouseleave sem sucesso.

feature request

Comentários muito úteis

Sim, estou pensando em adicionar drag-scroll-disabled" attribute in the drag-scroll-item` para desabilitar o aplicativo pai de arrastar e rolar. O que você acha?

Todos 25 comentários

Olá, @CrackerakiUA . Você já experimentou [drag-scroll-disabled]="disabled" ?

adicionando o código abaixo

 dragScroll drag-scroll-y-disabled='true' snap-disabled='true' [drag-scroll-disabled]="bool"

e no lugar da criança:

 (mouseenter)="bool=true" (mouseleave)="bool=false"

também apresentando bool para ver se ele está mudando. [drag-scroll-disabled] parece estar trabalhando no valor inicial e quando eu mudo a variável, ela não muda. Estranho porque no seu exemplo a alternância está funcionando.

Corrija-me se eu estiver errado. Basicamente, você deseja que drag-scroll-disabled desabilite mouseenter e mouseleave para todos os elementos filhos no contêiner de diretiva.

não é como para todos os elementos filhos, um recurso legal seria adicionar um atributo a qualquer filho e, para esse filho, a rolagem de arrastar seria cancelada (de uma forma que stopPropagation funciona). Estou feliz em implementar esse recurso, se você me orientar.

Teoricamente, se eu implementar seu demo, ele deve funcionar bem, mas no meu caso, tenho toneladas de elementos naquele contêiner e desabilitar não está funcionando bem.

Você tem um trecho de código para compartilhar? Ou você pode fazer um fork do aplicativo de demonstração e me mostrar o que você quer dizer exatamente? Estou tendo dificuldade em imaginar o caso de uso com a leitura do código ou demo.

<div class="container" dragScroll drag-scroll-y-disabled="true" snap-disabled="true">
    <header title="This should drag background">Something is here</header>
    <div drag-scroll-disable title="No drag background">Content</div>
    <div drag-scroll-disable title="No drag background">Content</div>
    <div drag-scroll-disable title="No drag background">Content</div>
    <div drag-scroll-disable title="No drag background">Content</div>
    <div drag-scroll-disable title="No drag background">Content</div>
    <footer title="This should drag background">Something else</footer>
    <!-- everything else should also drag background -->
</div>

Por favor, verifique o código, se isso não esclarecer a ideia, farei uma demonstração.

Obrigado @CrackerakiUA , tive a ideia. Em breve lançarei a versão 2.0.0, que apresentará um drag-scroll-item para marcar todos os elementos filhos. Assim que 2.0.0 for lançado, posso adicionar esse recurso logo em seguida.

Legal, sabe quando vai ser, precisa de ajuda nisso?

O PR para 2.0 está disponível https://github.com/bfwg/ngx-drag-scroll/pull/145. Estou apenas fazendo vários testes para ter certeza de que não há regressão. Aqui está o novo LEIA-ME https://github.com/bfwg/ngx-drag-scroll/blob/7592e3b08894ce23347c392c3fb88fc4c545323b/README.md

Seria ótimo se você pudesse dar uma chance a esse PR para que possamos torná-lo vivo mais rápido. Obrigado!

arrastar-rolar-item
parece tão bom, é possível usar algo como
ignore-drag-scroll-item
imagine um exemplo como trello onde você tem colunas que não estão arrastando o fundo.

Sim, estou pensando em adicionar drag-scroll-disabled" attribute in the drag-scroll-item` para desabilitar o aplicativo pai de arrastar e rolar. O que você acha?

Olá, algum progresso nisso?

Estava em um dos meus ramos de trabalho e esqueci-me dele. Vou forçar minhas alterações e, com sorte, chegar até hoje. Desculpe por isso 😅

Soa bem obrigado

A mudança está em 7.1.0. Você pode adicionar um atributo 'desativado para arrastar' no elemento filho e ele desativará o recurso de arrastar nesse elemento.

Resolvido em # 205

Ei, eu testei 7.1.0 e não está funcionando :(
Meu exemplo:

<drag-scroll [drag-scroll-y-disabled]="true">
    <task drag-disabled></task>
    <task drag-disabled></task>
    <task drag-disabled></task>
    <task drag-disabled></task>
    <task drag-disabled></task>
    <task drag-disabled></task>
</drag-scroll>

Seu elemento de tarefa está sem o atributo drag-scroll-item .

 <drag-scroll [drag-scroll-y-disabled]="true">
    <task drag-scroll-item drag-disabled></task>
    <task drag-scroll-item drag-disabled></task>
    <task drag-scroll-item drag-disabled></task>
    <task drag-scroll-item drag-disabled></task>
    <task drag-scroll-item drag-disabled></task>
    <task drag-scroll-item drag-disabled></task>
</drag-scroll>

logo depois de adicionar drag-scroll-item arrastar e rolar parando para funcionar. Tentei o caso que você adicionou e também:

 <drag-scroll [drag-scroll-y-disabled]="true" drag-scroll-item>
    <task drag-disabled></task>
    <task drag-disabled></task>
    <task drag-disabled></task>
    <task drag-disabled></task>
    <task drag-disabled></task>
    <task drag-disabled></task>
</drag-scroll>

e o próximo cenário:

<drag-scroll [drag-scroll-y-disabled]="true">
    <ng-container drag-scroll-item>
        <task drag-disabled></task>
        <task drag-disabled></task>
        <task drag-disabled></task>
        <task drag-disabled></task>
        <task drag-disabled></task>
        <task drag-disabled></task>
    </ng-container>
</drag-scroll>

Isso é estranho. Você pode reproduzir no aplicativo demo porque está funcionando bem para mim.

Usei seu exemplo e fiz algo como abaixo que não está funcionando:

<drag-scroll class="demo-one"
  drag-scroll-y-disabled="true"
  scrollbar-hidden="true"
  (dsInitialized)="onDragScrollInitialized()"
  (indexChanged)="onIndexChanged($event)"
  (reachesLeftBound)="leftBoundStat($event)"
  (reachesRightBound)="rightBoundStat($event)"
  (snapAnimationFinished)="onSnapAnimationFinished()"
  #nav
  >
  <ng-container *ngFor="let image of imagelist; let i = index;" drag-scroll-item>
    <img *ngIf="i%2==0" [src]="'assets/img/' + image" (click)="clickItem(image)" title="{{i}}" drag-disabled/>
    <img *ngIf="i%2!=0" [src]="'assets/img/' + image" (click)="clickItem(image)" title="{{i}}"/>
  </ng-container>

</drag-scroll>

Na verdade, drag-scroll-item parece não funcionar como deveria, o contêiner drag-scroll tem a capacidade de arrastar.

@bfwg meu exemplo está funcionando a seu

@bfwg Com o quê ou por quê? usando drag-scroll bloqueia todos os elementos de tipo de imagem de arrastar fantasma no site, não consigo encontrar como consertar isso

Este problema é uma cópia, consulte meus comentários https://github.com/bfwg/ngx-drag-scroll/issues/223#issuecomment -494259349

Eu indiquei o problema. @ arman2r

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Another-Sam picture Another-Sam  ·  12Comentários

IlCallo picture IlCallo  ·  14Comentários

tommykamkcm picture tommykamkcm  ·  17Comentários

Andi1990 picture Andi1990  ·  10Comentários

suresh2018 picture suresh2018  ·  22Comentários