Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    30

    Drag&drop cursore mouse

    Buongiorno a tutti.
    Mi servirebbe un piccolo aiuto.
    Ho realizzato, grazie alle vostre guide, una funzione di Drag&Drop che fa già tutto quello che mi serve.
    Mi è rimasto solo un piccolo neo che non riesco a risolvere.
    Quando trascino l'oggetto l'icona del mouse cambia dalla move che ho impostato a quella del divieto.
    Sapreste indicarmi il codice necessario per mantenere la stessa icona anche durante il trascinamento

    Di seguito riporto le varie porzioni di codice
    HTML:
    <div id="bot12"><IMG SRC="./b12.png" id="b12" BORDER=0 ondragstart="iniziaTrascinamento(event, 'bot12')" draggable="true" data-valore="b" data-icona="./b12.png"></div>

    CSS:
    #b12 {cursor: move; position: relative; top: 1195px; left: 674px;}

    JAVASCRIPT:
    function iniziaTrascinamento(evento, tipo)
    {
    document.body.style.cursor = "move";
    Elim = tipo;
    evento.dataTransfer.setData("text", evento.target.dataset.valore);
    evento.dataTransfer.effectAllowed = 'move';
    icona = document.createElement('img');
    icona.src = evento.target.dataset.icona;
    evento.dataTransfer.setDragImage(icona, 0, 0);
    } function trascinamentoInZonaDiDrop(evento)
    {
    evento.dataTransfer.dropEffect = 'move';
    evento.preventDefault();
    }
    function rilascioDellOggettoTrascinato(evento)
    {
    if(evento.dataTransfer.getData("text") == "b")
    {
    sommatoria = document.getElementById("bottiglie");
    sommatoria.innerHTML = parseFloat(sommatoria.innerHTML) + parseFloat(1);
    evento.preventDefault();
    document.getElementById(Elim).style.display='none' ;
    }
    else{evento.preventDefault();}
    }


    Grazie a tutti per l'aiuto!

  2. #2
    Moderatrice di CSS L'avatar di ResianTaxidrive
    Registrato dal
    Oct 2007
    residenza
    Udine
    Messaggi
    2,766
    Avresti un esempio visible online? non riesco a riprodurre il problema

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    30
    Lo inserisco stasera quando esco dal lavoro!

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    30
    Trovi l'esempio qui: http://www.sergiopession.eu/Prova/Fumetto2.html

    Il codice completo che ho usato è il seguente.

    HTML:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <link rel="STYLESHEET" type="text/css" href="./Fumetto2.css">
    </head>

    <body>
    <div id="sfondo"><IMG SRC="./11.png" id="immagine" border=0 width="960" height="1363" onLoad="Caricamento()"></div>

    <div id="bot12"><IMG SRC="./b12.png" id="b12" BORDER=0 ondragstart="iniziaTrascinamento(event, 'bot12')" draggable="true" data-valore="b" data-icona="./b12.png"></div>

    <div id="cont1"><IMG SRC="./c1.png" id="c1" dropzone="move s:text" draggable="false" ondragover="trascinamentoInZonaDiDrop(event)" ondrop="rilascioDellOggettoTrascinato(event)"></div>

    <div id="bot"><output id="bottiglie">0</output></div>
    <script type="text/javascript" src="Fumetto2.js"></script>
    </body>
    </html>


    CSS:
    #sfondo {position: absolute;top: 0px; left: 0px;}
    #b12 {cursor: move; position: relative; top: 1195px; left: 674px;}
    #c1 {cursor: pointer; position: absolute; top: 1300px; left: 500px;}
    #bot{cursor: move; position: absolute; top: 1315; left: 600px; font-family: Arial, Verdana, sans-serif; font-size: 25;}


    JAVASCRIPT:
    var Elim;

    function Caricamento(){document.getElementById('immagine'). style.cursor = 'default';}

    function iniziaTrascinamento(evento, tipo)
    {
    document.body.style.cursor = "move";
    Elim = tipo;
    evento.dataTransfer.setData("text", evento.target.dataset.valore);
    evento.dataTransfer.effectAllowed = 'move';
    icona = document.createElement('img');
    icona.src = evento.target.dataset.icona;
    evento.dataTransfer.setDragImage(icona, 0, 0);
    }

    function trascinamentoInZonaDiDrop(evento)
    {
    evento.dataTransfer.dropEffect = 'move';
    evento.preventDefault();
    }

    function rilascioDellOggettoTrascinato(evento)
    {
    if(evento.dataTransfer.getData("text") == "b")
    {
    sommatoria = document.getElementById("bottiglie");
    sommatoria.innerHTML = parseFloat(sommatoria.innerHTML) + parseFloat(1);
    evento.preventDefault();
    document.getElementById(Elim).style.display='none' ;
    }
    else{evento.preventDefault();}
    }

    function Nascondi_tutto()
    {
    //Nascondo gioco 1
    for(i = 0; i < 84; i++){document.getElementById(Casella[i]).style.display='none';}
    //Nascondo gioco 2
    for(i = 0; i < 6; i++){document.getElementById(Vignetta[i]).style.display='none';}
    //Nascondi gioco 3
    Nascondi_gioco3(0, 0, 20);
    //Nascondo gioco 4
    for(i = 0; i < 20; i++){document.getElementById(Numeri[i]).style.display='none';}

    document.getElementById('oscuro').style.display='n one';
    }


    Grazie per l'aiuto

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    30
    TROVATO!
    Basta aggiungere:
    evento.dataTransfer.mozCursor = "default";

    Anche se è l'unico puntatore che mi concede direi che posso dirmi soddisfatto!

  6. #6
    Moderatrice di CSS L'avatar di ResianTaxidrive
    Registrato dal
    Oct 2007
    residenza
    Udine
    Messaggi
    2,766
    Sto provando con Firefox sul sito da te linkato dove mi sembra che non ci sia il mozCursor (che tralaltro sembra solo per firefox) e trascinando la bottiglia, vedo il cursor in stile move.

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    IE11 non funziona

    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    30
    Allora ho cantato vittoria troppo presto.
    Si, al link il mozCursor non l'ho inserito.

    Effettivamente ho sempre simulato con Firefox e prima mi dava quel problema. Io il cursore move lo vedo solo quando passo sopra al div che contiene l'immagine della bottiglia.
    Quando inizio il trascinamento mi cambiava nel divieto.
    Ora con quel comando mi appariva la solita cara vecchia freccina.

    Se avete consigli sono ben accetti.
    Grazie a tutti

  9. #9
    Moderatrice di CSS L'avatar di ResianTaxidrive
    Registrato dal
    Oct 2007
    residenza
    Udine
    Messaggi
    2,766
    Dunque ho provato il link con FF su mac e funziona bene, ma su FF di win non va e nemmeno con IE11 va. Ma non mi va proprio il trascinamento, non credo sia un problema di cursore. Viene fuori il divieto perchè non si riesce a trascinare, credo.

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    30
    Il trascinamento funziona, o almeno fa quello che mi serve.
    Se sposti la bottiglia sul sacchetto incrementa il valore visualizzato, questa volta l'ho testato su Chrome, IE e FF.

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.