Calculate the width and height of parent div and apply to image accordingly

jquery, scale

Solution

Using jQuery you can use `.height()`, `.innerHeight()` or `.outerHeight()`.

The differences are:

- `height()` returns just the height of the element, no borders, no margins and no padding

- `innerHeight()` returns the element height and the padding

- `outerHeight()` returns the element height, the padding and borders

- `outerHeight(true)` returns the element height, the padding, borders and margins

I have more details including output examples using jsFiddle in this post here.

For width you can use `width()`, `innerWidth()` or `outerWidth()`. The same logic applies as with height.

All values are in pixels.

To get the height/width you can use it similar to this:

// The below is an example, you need to add your element references as required.

// Use height(), innerHeight() or outerHeight() as needed.
var newHeight = $("#slider-wrapper").height();

// Use width(), innerWidth() or outerWidth() as needed.
var newWidth = $("#slider-wrapper").width();

To set the height/width you can use it similar to:

// The below is an example, you need to add your element references as required.
var newHeight = $("#slider-wrapper img").height(newHeight);
var newWidth = $("#slider-wrapper img").width(newWidth);

Problem

I have a parent div which in responsive width and fixed height with some images inside it. On runtime I need a Jquery function to calculate the width and height of the div and apply the width (px) and height (px) parameters to image. i.e my code right now is ``` <div id="slider-wrapper" class="someclass"> <img src="/image1.jpg" alt="" /> <img src="/image2.jpg" alt="" /> <img src="/image3.jpg" alt="" /> </div> ``` the generated code which I need would be ``` <div id="slider-wrapper" class="someclass"> <img src="/image1.jpg" height="300px" width="total-div-width(px)" alt="" /> <img src="/image2.jpg" height="300px" width="total-div-width(px)" alt="" /> <img src="/image3.jpg" height="300px" width="total-div-width(px)" alt="" /> </div> ``` Thank you in anticipation

Original source

Related problems