Tengo un componente vue.js, que tiene una gran plantilla html con imágenes y diferentes bloques.

<div>
   ...
</div>
...
<div class="image-block">
   <img src="..." alt="" width="..." height="...">
</div>
...

¿Cómo puedo obtener el offsetHeight de un bloque de imagen?

0
Alexandr Semenets 28 oct. 2017 a las 16:26

3 respuestas

La mejor respuesta

¿Es más claro para ti?

mounted() { 

  let imageBlock = document.getElementsByClassName('information-block__img'); 
  // => A DOMElement set

  // If you want a jQuery set :

  let imageBlockJQ = $('.information-block__img') ;

  for (let element in imageBlock) { 

    let image = imageBlock[element]; 
    // So a DOMElement

    let imageHeight = image.offset();  // => FAIL

    // A DOMElement does'nt know the `offset` method. A jQuery set does
    // so:
    let imageHeight = $(image).offset();

    // Or

    let imageHeight = image.offsetTop ; // => RIGHT, a property

}
1
user3114072user3114072 28 oct. 2017 a las 14:40

Simplemente use la llamada element.offset().

0
user8848199user8848199 28 oct. 2017 a las 13:33

Encontré una solución, que funciona para mí, pero solo funciona cuando cambio el tamaño de una página:

mounted() {
      let infoBlock = document.getElementsByClassName('information-block');
      for (let element in infoBlock) {
          $(window).resize(function() {
              $('.information-block__container').height($('.information-block__img').height());
          });
      }
}
0
Alexandr Semenets 28 oct. 2017 a las 14:25