Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Drag & Drop, Scroll e Css position. Mix mortale.

    Guru del Javascript, mi serve aiuto. Ecco la mia situazione:

    Ho una pagina in cui, all interno di un div (che chiamerò divA) vengono caricate immagini dinamicamente (prese da un DB con mysql).
    Ho bisogno che queste immagini siano draggabili dal divA ad un altro div (divB) nella stessa pagina.
    Non ho alcun problema con il drag&drop, l'unico problema è che quando si trascina l'immagine fuori dal divA, essa non segue più il mouse (poi il drop dentro il divB funziona perfettamente, è solo un fatto "estetico")

    Ho smanettato con gli z-index css ma niente da fare, l'immagine, una volta fuori dal div, sparisce nonstante abbia uno z-index maggiore di tutti gli altri oggetti.

    Ora: la proprietà css position delle immagini caricate dinamicamente è absolute, altrimenti lo scroll del divA non sarebbe possibile...MA ho notato che mettendo la proprietà css position a fixed l'immagine segue sempre il mouse, indipendentemente dal div su cui passa (MA cosi perdò lo scroll del divA).

    La mai domanda è: c'è un modo di risolvere sto problema? sto impazzendo. Ho anche provato a rendere l'immagine con position fixed appena comincia il drag, ma appena comincia il drag viene posizionata in cima alla pagina (e risulta draggabile da li) e ogni modo per cambiare le sue coordinate/offset ecc. non funziona, comincia sempre da li.

    P.S. sto usando i metodi offerti da jQueryUI per il drag.

    Spero saprete aiutarmi,
    Fabrizio.

  2. #2
    Credo che l'unica soluzione sia creare un div temporaneo di appoggio con zindex anteriore agli altri DivA e DivB, inizialmente nascosto.
    Quando inizi il D&D posizioni il div temporaneo sopra al DIvA e sposti la immagine dal DIvA a quello temporaneo.
    Poi "dragghi" non la immagine ma bensì il div temporaneo.
    Infine "droppi" la immagine dal div temporaneo al DivB e fai sparire il div temporaneo.
    Tecnolgie per l'arte.
    Arti per la tecnologia.
    softhare

  3. #3
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Non conosco jQuery, ma credo che in base a quello che hai scritto, l'errore stia nel fatto che non sommi lo scroll della pagina alle coordinate del mouse ottenute durante il trascinamento. Altrimenti non si spiega perché con position = fixed il trascinamento funzioni. Lo scroll lo ottieni così:

    codice:
    scrollOrizzontale = document.documentElement.scrollLeft || document.body.scrollLeft;
    scrollVerticale = document.documentElement.scrollTop || document.body.scrollTop;
    Ciao.

    P.S.: prima di fare modifiche, puoi avere la certezza del fatto che si tratti di questo tipo di errore facendo il trascinamento col mouse prima di scorrere per la pagina, quando sei ancora al "Top"...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.