Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18

Discussione: problema compatibilità Chrome

  1. #11
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    3,745
    Se non facessi danno sposterei la discussione sul forum CSS, che magari è più specifico, ma non so come si fa senza evitare richiami dagli amministratori.
    Le discussioni possono essere spostate dai moderatori di sezione. Puoi segnalare il post cliccando sull'icona "Segnala il messaggio" (presente sotto ogni post in basso a sx), quindi chiedere di spostare.
    Prima di postare considera che tra i link utili puoi trovare il 75% delle risposte alle tue domande; il 15% tra i post del forum; il 9% sul web.
    Ti resta l’1% ... usalo bene!

    Le cattive domande sono quelle che non meritano risposta, le buone domande sono quelle che non hanno risposta
    L'Itailano non e nu'opnioine. E' improntate uslaro correattemtne sul froum. Garize!

  2. #12
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    3,745
    Ho dato uno sguardo alla pagina, non mi pare sia un problema del CSS in sè, piuttosto noto che in FF sugli elementi in questione (ad esempio sul primo) viene applicata un'ulteriore classe "anim1" oltre ad "animation1". Questa classe, "anim1", è incaricata alla comparsa di quegli elementi, e viene applicata via JavaScript durante lo scorrimento della pagina (così mi pare di capire), cioè il nome di classe "anim1" viene inserito nell'attributo class dell'elemento in questione dove già è presente "animation1".

    Su CH questa ulteriore classe non viene inserita. Presumo quindi che si tratti più che altro di un problema JavaScript, forse relativamente alla gestione dell'evento scroll.

    Non ho indagato a fondo ma prova magari a dare uno sguardo in quella direzione piuttosto che sul CSS.
    Prima di postare considera che tra i link utili puoi trovare il 75% delle risposte alle tue domande; il 15% tra i post del forum; il 9% sul web.
    Ti resta l’1% ... usalo bene!

    Le cattive domande sono quelle che non meritano risposta, le buone domande sono quelle che non hanno risposta
    L'Itailano non e nu'opnioine. E' improntate uslaro correattemtne sul froum. Garize!

  3. #13
    Grazie per la risposta KillerWorm, però non capisco cosa intendi per
    in FF viene applicata un'ulteriore classe "anim1"
    e
    Su CH questa ulteriore classe non viene inserita
    io non mi intendo di javascript, secondo te dove trovo i riferimenti ai browser che gestiscono quelle classi?

    Claudio

  4. #14
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    3,745
    però non capisco cosa intendi per
    Ti spiego quello che ho fatto.

    Sui due browser, attraverso la console web (che puoi aprire pigiando F12), ho verificato cosa avviene dietro le quinte di quella pagina.

    Sulla scheda "Analisi pagina" ("Elements" su CH) della console, viene mostrato il codice HTML dell'intera pagina; questo viene aggiornato in tempo reale, per cui è possibile verificare tutto ciò che avviene per ogni singolo tag (cioè per ogni elemento presente sulla pagina).

    Selezionando uno di quei tag/elementi in questione (ad esempio il primo a sx) ho potuto constatare che su FF, così come su CH, questo possiede un nome di classe "animation1" (lo puoi vedere nell'attributo class di tale tag) ma allo scorrere della pagina gli viene aggiunta una classe "anim1", questo avviene su FF ma non su CH.

    A quel punto, su CH, ho provato ad aggiungere manualmente quella classe; cioè dalla scheda "Elements" ho fatto doppio click sul valore dell'attributo class di quel particolare tag (dove appunto era presente "animation1" altre ad altre classi), che mi ha permesso di editarne il valore, quindi ho aggiunto " anim1" e premuto invio. Sulla pagina è quindi comparso, con la sua animazione, tale l'elemento.

    In base a tutto questo posso "ipotizzare" che tale processo (cioè l'applicazione di quella particolare classe) sia gestito da un qualche funzione JavaScript che viene eseguita allo scorrimento della pagina.

    io non mi intendo di javascript, secondo te dove trovo i riferimenti ai browser che gestiscono quelle classi?
    Non ne ho idea, o meglio, qualche idea posso anche averla ma la cosa potrebbe essere abbastanza complessa anche per me. Bisognerebbe fare un lavoro di ricerca sui vari file e script js ma, anche trovato il punto, non è detto che il problema sia facilmente risolvibile o non sia legato magari anche ad altri fattori.

    Personalmente inizierei a cercare, ad esempio, le funzioni che gestiscono l'evento scroll (ed eventuali simili eventi) che sono applicati, solitamente, sui contenitori principali del documento, <html> o <body>. Una prima analisi può essere fatta sempre tramite la console dove è possibile vedere, appunto, quali funzioni/script sono agganciate agli eventuali eventi su ogni specifico elemento.

    Ovviamente non è una cosa semplice da spiegare qui e, quantomeno, sarebbe offtopic.

    Eventualmente vedo se riesco a risalire a qualcosa ma non ti garantisco nulla. Nel caso, attendi anche altre eventuali risposte dagli altri utenti.
    Prima di postare considera che tra i link utili puoi trovare il 75% delle risposte alle tue domande; il 15% tra i post del forum; il 9% sul web.
    Ti resta l’1% ... usalo bene!

    Le cattive domande sono quelle che non meritano risposta, le buone domande sono quelle che non hanno risposta
    L'Itailano non e nu'opnioine. E' improntate uslaro correattemtne sul froum. Garize!

  5. #15
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    3,745
    Il caso mi ha incuriosito per cui ho portato avanti qualche debug su quella pagina. Non ti nascondo che è stato abbastanza complesso ma alla fine sono riuscito a risalire alla causa del problema (che, come avevo supposto, è legata in qualche modo alla gestione dello scroll) e quindi a trovare una possibile soluzione.

    In sostanza il problema sta in una "semplice" variabile che viene valorizzata in modo differente a seconda del browser usato. In particolare se lo user agent è 'webkit' (cioè il browser è Chrome/Safari) viene usato un valore, in tutti gli altri casi ne viene usato un altro. Questo crea il problema ma presumo sia stato impostato in quel modo perché probabilmente funzionava così su precedenti versioni di Chrome. Mi riservo comunque il beneficio del dubbio.

    La variabile in questione sta nel file wp-content/themes/ulump/js/lucid-custom-scripts.js alla riga 423:
    codice:
    scrollElem = ((navigator.userAgent.toLowerCase().indexOf('webkit') != -1) ? 'body' : 'html');
    Nel caso di Chrome (o Safari o altri eventuali browser che usano il motore webkit) viene quindi passato il valore "body"; negli altri casi viene passato "html".

    Tale variabile viene usata poco più avanti come selettore jQuery da cui ricavare un valore dello scorrimento della pagina:
    codice:
    viewportStart = $(scrollElem).scrollTop();
    Il problema sta nel fatto che $('body').scrollTop() su CH (perlomeno su recenti versioni) restituisce sempre 0 ma si tratta di un valore di default perché in sostanza questo valore dovrebbe aumentare allo scorrere della pagina.

    Per risolvere puoi semplicemente impostare quella prima variabile in questo modo:
    codice:
    scrollElem = 'html';
    Da alcuni test ho potuto verificare che su CH funziona. Non ho però idea se su altri browser che usano webkit, questa soluzione risulti essere attualmente valida.

    Nel caso dovresti fare qualche test sui vari browser.

    Eventualmente puoi anche provare a definire la variabile in questo modo:
    codice:
    scrollElem = 'html,body';
    Se su altri browser non dovesse funzionare bisognerà creare qualche altra condizione per definire opportunamente il valore da attribuire a questa variabile.

    Per il momento è tutto
    Fai sapere come va.
    Ultima modifica di KillerWorm; 14-01-2018 a 05:01
    Prima di postare considera che tra i link utili puoi trovare il 75% delle risposte alle tue domande; il 15% tra i post del forum; il 9% sul web.
    Ti resta l’1% ... usalo bene!

    Le cattive domande sono quelle che non meritano risposta, le buone domande sono quelle che non hanno risposta
    L'Itailano non e nu'opnioine. E' improntate uslaro correattemtne sul froum. Garize!

  6. #16
    Grazie KillerWorm, ho fatto come mi hai detto usando
    codice:
    scrollElem ='html,body';
    e funziona su chrome, safari e mozilla, quindi per me è apposto. Un'ultima cosa, credi che la tua soluzione sia universale anche per i browser mobile?


    Non so come ringraziarti perché per me sarebbe stato impossibile risolvere la cosa, se passi dalle mie parti (Cagliari) ti offro una cena :-)

  7. #17
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    3,745
    codice:
      							Grazie KillerWorm, ho fatto come mi hai detto usando
    Ho fatto altre ricerche quindi mi correggo, molto brevemente in questo caso il selettore 'html,body' ha lo stesso valore di 'html' perché il metodo scrollTop() fa riferimento al primo elemento trovato. In entrambi i casi si ottiene comunque lo stesso risultato.

    In effetti l'uso del doppio elemento l'ho trovato in un caso simile dove però viene applicato ad animation() per impostare la proprietà scrollTop (e non per ottenerne il valore come serve nel tuo caso).

    Qui qualche link a riguardo:
    https://bugs.jquery.com/ticket/13155
    https://stackoverflow.com/questions/...cross-browsers
    https://stackoverflow.com/questions/...ibility-issues

    L'istruzione più logica sarebbe quindi scrollElem='html'

    e funziona su chrome, safari e mozilla, quindi per me è apposto. Un'ultima cosa, credi che la tua soluzione sia universale anche per i browser mobile?
    Potrei provare giusto sul mio android con Chrome ma dovresti aggiornare il sito con quella modifica; attualmente non lo vedo aggiornato.
    Ovviamente fai anche tu dei test sui diversi browser mobile e possibilmente anche su sistemi apple.

    Non so come ringraziarti perché per me sarebbe stato impossibile risolvere la cosa, se passi dalle mie parti (Cagliari) ti offro una cena :-)
    Mi segno il tuo invito
    Prima di postare considera che tra i link utili puoi trovare il 75% delle risposte alle tue domande; il 15% tra i post del forum; il 9% sul web.
    Ti resta l’1% ... usalo bene!

    Le cattive domande sono quelle che non meritano risposta, le buone domande sono quelle che non hanno risposta
    L'Itailano non e nu'opnioine. E' improntate uslaro correattemtne sul froum. Garize!

  8. #18
    Sul sito non è ancora visibile perché ho preferito prima testarlo in locale. Comunque prendo per buona questa ultima integrazione e la caricherò a breve. Grazie ancora.

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 © 2018 vBulletin Solutions, Inc. All rights reserved.