Visualizzazione risultati 1 fino 6 di 6

Discussione: Definire stile dinamicamente tramite JS

  1. #1
    phollia non è connesso Utente giovane
    Data registrazione
    05-02-2015
    Messaggi
    68

    Predefinito Definire stile dinamicamente tramite JS

    Salve

    il problema è questo:
    ho un blocco (DIV) individuato tramite la classe (CLASS=... / .mia_classe). Mi serve andare a mettere prima di questo blocco una immagine.
    La cosa la faccio tramite CSS utilizzando la pseudoclasse :before e content più altre direttive per la corretta visualizzazione.

    Adesso, ho l'esigenza di fare questo solo in particolari periodi e quindi, potendo operare solo lato client, vorrei impostare il css

    Codice PHP:
    .miaclasse:before {content ...}
    solo quando sono soddisfatti i requisiti temporali tramite JS.

    Ecco. Ma come faccio a definire tutto questo css tramite JS?

  2. #2
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    4,285

    Predefinito

    Salve,
    intende far apparire l'immagine solo in determinati orari della giornata, o fa riferimento a specifiche azioni da parte di un evenutale utente?

    Può indicare nello specifico, quali sono le condizioni in cui si deve vedere l'immagine?

    Cordiali saluti.

  3. #3
    phollia non è connesso Utente giovane
    Data registrazione
    05-02-2015
    Messaggi
    68

    Predefinito

    Il problema non è nella condizione che comunque consiste solo nella verifica del giorno del mese (qui ad esempio se deve apparire solo giorno 5 del mese):

    Codice:
    var d = new Date();
    if(d.getDate() == 5) {
       ...
    }
    il fatto è che mi serve impostare le proprietà CSS da JS.

    NB: NON posso usare document.write("<style>"...)

  4. #4
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    4,285

    Predefinito

    La pseudo classe css può gestirla da js così:
    Codice:
    var div = document.getElementById("miaclasse");
    
    var d = new Date();
    if(d.getDate() == 5) {
      div.pseudoStyle("before","display","block");
    }
    else{
      div.pseudoStyle("before","display","none");
    }
    Comnuque nel caso di html e css, in alternativa a document.write(), può usare innerHTML:
    Codice:
    document.getElementById("miaclasse").innerHTML
    Cordiali saluti.

  5. #5
    phollia non è connesso Utente giovane
    Data registrazione
    05-02-2015
    Messaggi
    68

    Predefinito

    A parte che non posso ottenere l'elemento con getElementById ma dovrei usare getElementsByClassName (la struttura è fuori dal mio controllo e posso intervenire solo attraverso la classe), nell'assegnare lo stile ATTRAVERSO la pseudoclasse :before devo impostare non solo la visibilità ma avevo già scritto, il CONTENT, vertical-align, margin, display, ecc.

    Non mi serve solo Hide/Show.

    Alla fine della conta all'elemento avente classe "mia_classe" devo applicare uno stile del genere:

    Codice HTML:
    .mia_classe:before {
       content: url(xxx);
       vertical-align: middle; 
       margin-left: xxx px; 
       display: inline-block;
    }
    ma in maniera dinamica.
    Non posso scriverlo prima altrimenti verrebbe applicato subito.

    PS: .pseudoStyle non è nativa di JS, va definita (e non posso farlo).
    Ultima modifica di phollia : 04-01-2021 alle ore 19.16.47

  6. #6
    phollia non è connesso Utente giovane
    Data registrazione
    05-02-2015
    Messaggi
    68

    Predefinito

    Ho risolto per altra via.

    Ho definito una NUOVA classe con tutti le impostazioni volute e tramite JS aggiungo questa classe (e tutto il :before) quando serve, all'elemento interessato.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •