2012-05-29 10 views
8

In MENO ho usato il seguente codice per ottenere l'altezza della finestra.utilizzando javascript valori calcolati in meno

@winheight:`$(window).height()` 

Quello che sto ricevendo è un numero, ma quando aggiungo px lì per avere l'unità,

height: @winheight px; 

Sarà compilare a qualcosa di simile height: 910 px.

Ho provato ad avere l'unità anche dopo la valutazione di javascript. ma ho ottenuto lo stesso risultato.

@winheight:`$(window).height()`px 
height: @winheight; 
... 

height:910 px; 

Come posso ottenere height:910px là (senza lo spazio tra il numero e l'unità)?


EDIT:

Per quanto riguarda i primi quattro risultati, si crea una stringa height:"910px", che non viene visualizzata correttamente.

risposta

7

Basta usare string interpolation e poi escape dalla stringa utilizzando ~:

@winheight:`$(window).height()`; 

height: ~"@{winheight}px"; 
+0

Ho ricevuto questo errore in NodeJs - Errore di valutazione JavaScript: "ReferenceError: $ non è definito" – Ampersanda

+0

@Mochamad Lucky Prada è possibile valutare solo JavaScript in LESS che è compilato lato client – Paulpro

+0

Significa che il MENO no prendi il jQuery? – Ampersanda

0

provare questo

@winheight:`$(window).height()+"px"` 
height: @winheight; 

perché .height) solo restituisce valore di pixel (unità-less.
alternativa utilizzare la seguente

@winheight:`$(window).css("height")` 
    height: @winheight; 

css ("altezza") restituisce un valore con unità

+0

questo restituisce un valore stringa. ma non viene visualizzato nell'altezza del browser: "910px" ' – tiran

+0

@tiran controlla la mia risposta aggiornata una volta, per favore fammi sapere se funziona o no – Valli69

+0

Ho ricevuto un errore in seguito quando eseguo il tuo codice nel browser. 'TypeError: impossibile leggere la proprietà 'defaultView' di undefined' – tiran

0

Che dire di questo:

@winheight:`$(window).height().toString() + "px"` 
0

Questo potrebbe funzionare a seconda MENO che Non lo so bene

Leggere i documenti questa è una possibilità.

@winheight:0px + `$(window).height()` 
+0

restituisce un valore stringa. ma non viene visualizzato nell'altezza del browser: "910px" – tiran

+0

Ho modificato la mia risposta dopo aver letto i documenti.Puoi configurare un jsFiddle? – HBP

1

fornire questo codice e vedere che cosa si ottiene.

@winheight:0px + `$(window).height()' 
+0

copycat answer ... – Christoph

+0

@Christoph: Rushi ha risposto a questa risposta mentre stavo modificando la mia, quindi nessuna copia coinvolta – HBP

+0

mia cattiva ... sentiti libero di modificare la tua risposta in modo da poter rimuovere il -1. – Christoph

1

Prendere .css(height) invece di .height() - questo restituisce il valore + unità.

Problemi correlati