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

    proprietà style: come è usata qui?

    estraggo solo le stringhe interessate perchè l'intero codice è molto lungo:
    var supports3d = document.body.style['WebkitPerspective'] !== undefined ||
    document.body.style['MozPerspective'] !== undefined ||
    document.body.style['msPerspective'] !== undefined ||
    document.body.style['OPerspective'] !== undefined ||
    document.body.style['perspective'] !== undefined,

    questa variabile sarà poi passata all'interno di un'espressione if.
    l'utilità mi sembra chiara, in teoria: vuole verificare se un browser supporta il 3d o meno.
    sono abituato a vedere la propruetà tyle usata in questo modo:
    body.document.style.proprietà = "valore"

    le stringhe style['WebkitPerspective'], style['MozPerspective'], style['msPerspective'] ecc, mi hanno confuso le idee.
    mi aiutate a capire?

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Non c'è molto da capire.
    In sostanza la variabile supports3d risulterà vera (true) se una qualsiasi (o più di una) delle proprietà elencate esiste, cioè non è indefinita (!== undefined).
    Se "non viene trovata" nessuna di quelle proprietà, allora supports3d sarà false.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    è vero, ma quel style["WebkitPerspective"] oppure style["MonzPerspective] e via continuando, non è usale (è la prima volta che lo vedo). è quello che trovo poco comprensibile.

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Da quello che so è la stessa proprietà perspective (o un'alternativa di tale proprietà) che viene però "nominata" in modo differente dagli sviluppatori dei diversi browser, normalmente indicando il prefisso relativo al framework che supporta tali proprietà (moz per Mozilla Firefox, webkit per Chrome e Safari, o per Opera, ms per Microsoft Internet Explorer e chipiùnehapiùnemetta).

    Non è così inusuale.

    Diverse altre proprietà, non standard (o comunque non supportate originariamente da tutti i browser) sono state differenziate (diciamo così) in questo modo perché appunto non sono standard.

    Nel tuo caso viene fatta una verifica sull'esistenza di almeno una di quelle proprietà semplicemente per avere uno script crossbrowser (e retrocompattibile).
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Originariamente inviato da KillerWorm
    Da quello che so è la stessa proprietà perspective (o un'alternativa di tale proprietà) che viene però "nominata" in modo differente dagli sviluppatori dei diversi browser, normalmente indicando il prefisso relativo al framework che supporta tali proprietà (moz per Mozilla Firefox, webkit per Chrome e Safari, o per Opera, ms per Microsoft Internet Explorer e chipiùnehapiùnemetta).

    Non è così inusuale.

    Diverse altre proprietà, non standard (o comunque non supportate originariamente da tutti i browser) sono state differenziate (diciamo così) in questo modo perché appunto non sono standard.

    Nel tuo caso viene fatta una verifica sull'esistenza di almeno una di quelle proprietà semplicemente per avere uno script crossbrowser (e retrocompattibile).
    è proprio così, non metto in dubbio quanto dici: tanto per dirne un'altra di proprietà che richiede questa "differenziazione" riccordo @font-face. la stessa proprietà perspective mi sembra che funzioni solo su chrome e safari o la proprietà transition che ha anch'essa un'implementazione limutata sui diversi browser. quindi capisco la necessità di verificare che un browser sia o meno in grado di applicare una proprietà che definiamo.

    quello che mi sembra inusuale, almeno personalmente è proprio la sintassi usata: associare style a una stringa tra parentesi graffe: è una sintassi che ricorda la chiamata di un elemento di un array.

    il codice dal quale ho estrapolato queste variabili che ho scritto qui è molto lungo (e complesso) quindi chiedo scusa se non posso contestualizzarle all'intero codice per rendere più chiara la loro funzione.

    ad ogni modo sto cominciando a ipotizzare che nel corso del codice ci possa essere una funzione che potrebbe aiutarmi a capire il motivo di quella sintassi di cui sopra ho scritto: una definzione di un array o qualcosa di simile.

  6. #6
    codice:
    var oggetto = {foo: 'foo', bar: 'bar'};
    
    oggetto.foo === oggetto['foo'] //true
    E' una sintassi diversa ma significa la stessa cosa.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  7. #7
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    quello che mi sembra inusuale, almeno personalmente è proprio la sintassi usata: associare style a una stringa tra parentesi graffe: è una sintassi che ricorda la chiamata di un elemento di un array.
    Scusami, non avevo capito che ti riferissi nello specifico alla sintassi utilizzata.
    Ora mi è chiaro.
    Come ha indicato mxa, per accedere ad una proprietà di un oggetto in javascript, può essere usata la sintassi a punti o quella con parentesi quadre (in questo caso si parla di accesso dinamico, anche se nel tuo scorcio di script sembra servire a ben poco).

    In javascript infatti è possibile accedere, in modo dinamico, alle proprietà di un oggetto, così come fai proprio con gli array. In sostanza gli oggetti in javascript sono paragonabili agli array associativi.

    Precisiamo che javascript è un linguaggio di programmazione "debolmente orientato ad oggetti" e permette l'uso di sintassi del genere.

    In linea di massima si sarebbe potuto scrivere anche con la sintassi a punti, in questo modo:
    codice:
    var supports3d = document.body.style.WebkitPerspective !== undefined
    //ecc...
    Il risultato sarebbe presumibilmente lo stesso che accedere "dinamicamente" alla proprietà.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  8. #8
    ah ecco!
    in effetti era anche abbastanza banale.
    grazie a KillerWorm e mxa

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.