Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    583

    onMouseOver + onMouseDown

    Ciao a tutti, ho un quesito fuori dal comune da proporvi.
    Avete presente il programma di grafica Paint?
    Su questo genere di programmi, per disegnare, occorre muovere il puntatore tenendo premuto il tasto sinistro del mouse.
    Io vorrei fare la stessa cosa in una pagina web.
    Non posso usare uno dei programmi suddetti perchè devo controllare cosa l'utente ha disegnato. (come potrò fare ancora non so)
    Per realizzare il progetto ho usato una Table con 400 celle quadrate di 5 punti per lato.
    Al passaggio del puntatore le celle cambiano il loro colore di sfondo:
    onMouseOver = "SubCambiaColore()"
    Ho dovuto mettere l'istruzione in ogni TD perchè nei CSS onMouseOver funziona solo con i link. (VBScript e IE ma qui il linguaggio usato non c'entra)
    Fin qui tutto bene.
    Però vorrei che funzionasse solo quando si tiene premuto il tasto sinistro del mouse.

    Per far ciò nel body ho aggiunto:
    onMouseDown = "SubTastoGiu()" onMouseUp = "SubTastoSu()"
    Queste due sub mettono la variabile "scrivi" a True o a False
    Poi nella SubCambiaColore ho aggiunto:
    se scrivi = false non fare niente ed esci dalla sub

    Funziona, ma funziona male.
    Cioè all'inizio va bene, scrive se tengo premuto il tasto del mouse.
    Lo rilascio e non scrive più,
    Lo ripremo e invece di scrivere mi appare (ma non sempre) un cursore rotondo con una riga in mezzo e scrive anche se ho rilasciato il tasto. Perchè? Forse le due proprietà (onMouseOver e onMouseDown) in contemporanea vanno in conflitto?
    Avete un’altra strada per raggiungere lo scopo?
    rudyF

  2. #2
    Solo un'idea, visto che sono di frettissima...hai provato a gestire esplicitamente l'evento "rilascio del pulsante del mouse" con il gestore onmouseup? Magari si incasina perché non richiami esplicitamente onmouseup, ma imposti un valore a false nelle funzioni...

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    583
    Gestire l'evento onMouseUp direttamente sui TD è impensabile.
    Ogni TD avrebbe bisogno dell'evento! Bisognerebbe clickare su ogni quadratino!
    Per questo ho messo onMouseUp e onMouseDown nel body.
    Ho provato a metterli nella Table e poi in entrambi i posti, ma il risultato non cambia.
    Invece onMouseOver è ovviamente in tutti i TD.
    Quando il puntatore è sopra la table l'evento onMouseOver è costantemente richiamato e gestito dalla SubCambiaColore e temo che sia questo ad influenzare gli altri due eventi.

    Però all'inizio non succede.
    Ci vorrebbe qualcosa che, una volta eseguito l' onMouseUp riporti il tutto alle condizioni originali.
    Lo so da me che è una richiesta astrusa e che molto probabilmente il progetto non vedrà la fine, ma se non ci provo ......
    rudyF

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.