8

In LESS I used following code to get the window's height.

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

What I'm getting is a number, but when i add px there to have the unit,

height: @winheight px;

It will compile to something like height: 910 px.

I tried to have the unit after the javascript evaluation too. but I got the same result.

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

height:910 px;

How can I get height:910px there (without the space between number and unit) ?


EDIT:

As for the first four results, it creates a string height:"910px", which doesn't render correctly.

7 Answers 7

7

Simply use string interpolation and then escape from the string using ~:

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

height: ~"@{winheight}px";
Sign up to request clarification or add additional context in comments.

3 Comments

I got this error in NodeJs -- JavaScript evaluation error: 'ReferenceError: $ is not defined'
@Mochamad Lucky Prada you can only evaluate JavaScript in LESS that is compiled client-side
Is that means the LESS doesn't get the jQuery?
1

Take .css(height) instead of .height() - this returns the value + unit.

Comments

1

give this code and see what is you get it.

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

2 Comments

@Christoph : Rushi put up this answer while I was editing mine so no copying involved
my bad...feel free to edit your answer so i can remove the -1.
0

Does replacing empty space help for you? Try reading the answer of this: Replacing spaces with underscores in JavaScript?

Comments

0

What about this:

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

Comments

0

try this

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

because .height() returns only unit-less pixel value.
alternatively use the following

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

.css("height") returns a value with units

3 Comments

this returns a string value. but it is not rendered in the browser height: "910px"
@tiran check my updated answer once, please let me know if is working or not
I got following error when I execute your code in the browser. TypeError: Cannot read property 'defaultView' of undefined
0

This might work depending on LESS which I do not know well.

Reading the docs this is a possibility.

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

2 Comments

this returns a string value. but it is not rendered in the browser height: "910px"
I have edited my answer after reading the docs. Can you set up a jsFiddle?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.