2012-05-29 11 views
8

En MENOS utilicé el siguiente código para obtener la altura de la ventana.utilizando valores calculados de JavaScript en menos

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

lo que quiero llegar es un número, pero cuando agrego px allí para tener la unidad,

height: @winheight px; 

se compilará a algo así como height: 910 px.

Traté de tener la unidad después de la evaluación de javascript también. pero obtuve el mismo resultado.

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

height:910 px; 

¿Cómo puedo obtener height:910px allí (sin el espacio entre el número y la unidad)?


EDIT:

En cuanto a los cuatro primeros resultados, se crea una cadena height:"910px", lo que no representa correctamente.

Respuesta

7

Sólo tiene que utilizar string interpolation y luego escape de la cadena mediante ~:

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

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

Recibí este error en NodeJs - Error de evaluación de JavaScript: 'ReferenceError: $ no está definido' – Ampersanda

+0

@Mochamad Lucky Prada solo se puede evaluar JavaScript en LESS que se compila en el lado del cliente – Paulpro

+0

¿Eso significa que el LESS no obtener el jQuery? – Ampersanda

0

probar esto

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

porque .height) devoluciones solamente valor de píxel unidad menos (.
alternativamente usa la siguiente

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

.css ("altura") devuelve un valor con unidades

+0

Esto devuelve un valor de cadena. pero no se representa en el navegador 'height:" 910px "' – tiran

+0

@tiran verifique mi respuesta actualizada una vez, por favor avíseme si está funcionando o no – Valli69

+0

Recibí un error de seguimiento cuando ejecuto su código en el navegador. 'TypeError: no se puede leer la propiedad 'defaultView' undefined' – tiran

0

Qué tal esto:

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

Esto podría funcionar dependiendo de lo que MENOS No sé muy bien.

Leyendo los documentos esta es una posibilidad.

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

, esto devuelve un valor de cadena. pero no se representa en la altura del navegador: "910px" – tiran

+0

He editado mi respuesta después de leer los documentos.¿Puedes configurar un jsFiddle? – HBP

1

da este código y ves lo que obtienes.

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

respuesta de imitación ... – Christoph

+0

@Christoph: Rushi puso esta respuesta mientras editaba la mía, por lo que no fue necesario copiar – HBP

+0

mal ... no dude en editar su respuesta para poder eliminar el -1. – Christoph

1

Take .css(height) en lugar de .height() - esto devuelve el valor + unidad.

Cuestiones relacionadas