Run script from several elements with the same name

1

Good trades I have several elements <img class="img-producto"> and a javascript function in which I search with the events 'mouseover' and 'mouseout' is that when passing through the images that are in <img class="img-producto"> change image size. The problem is that I do not know how to make it work, since as mentioned above, everyone is with the <img class="img-producto">

HTML

<div class="col-lg-4">
        <img  src="images/lentera.png" class="img-producto" id="img-product" style="transform: matrix(1, 0, 0, 1, 0, 0);" alt="Generic placeholder image" width="160" height="180">
        <h2>Leche Entera</h2>
        <p>Donec sed odio dui. Etiam porta sem malesuada magna mollis euismod. Nullam id dolor id nibh ultricies vehicula ut id elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Praesent commodo cursus magna.</p>
        <p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
      </div><!-- /.col-lg-4 -->
      <div class="col-lg-4">
        <img  class="img-producto" id="img-product" style="transform: matrix(1, 0, 0, 1, 0, 0);" src="images/lsemidescremada.png" alt="Generic placeholder image" width="160" height="180">
        <h2>Leche Pasteurizada Semidescremada</h2>
        <p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh.</p>
        <p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
      </div><!-- /.col-lg-4 -->
      <div class="col-lg-4">
        <img class="img-producto"  id="img-product" style="transform: matrix(1, 0, 0, 1, 0, 0);" src="images/lentera.png" alt="Generic placeholder image" width="160" height="180">
        <h2>Heading</h2>
        <p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
        <p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
      </div>

Javascript

<script>
var x = document.getElementsByClassName('img-producto');
alert(x.length);
x.addEventListener('mouseover', productoHover );
x.addEventListener('mouseout', productoOut );
  function productoHover(){

    x.style.transform = "matrix(1.1, 0, 0, 1.1, 0, 0)";
}
function productoOut(){
    x.style.transform = "matrix(1, 0, 0, 1, 0, 0)";
}
</script>

I appreciate your help

    
asked by jhon1946 20.12.2017 в 20:27
source

1 answer

4

The first thing you have to do is add the events to each of the elements, as there are several you must add one by one, this is achieved with a cycle for , then by means of this you can execute the events in the element with which the user is interacting ignoring the others

var x = document.getElementsByClassName('img-producto');

for(var i = 0; i < x.length; i++){
  x[i].addEventListener('mouseover', productoHover);
  x[i].addEventListener('mouseout', productoOut);
}

function productoHover(){
    this.style.transform = "matrix(1.1, 0, 0, 1.1, 0, 0)";
}

function productoOut(){
    this.style.transform = "matrix(1, 0, 0, 1, 0, 0)";
}
<div class="col-lg-4">
  <img  src="https://orig00.deviantart.net/3382/f/2008/336/6/b/lentera_by_nangz.jpg" class="img-producto" id="img-product" style="transform: matrix(1, 0, 0, 1, 0, 0);" alt="Generic placeholder image" width="160" height="180">
  <h2>Leche Entera</h2>
  <p>Donec sed odio dui. Etiam porta sem malesuada magna mollis euismod. Nullam id dolor id nibh ultricies vehicula ut id elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Praesent commodo cursus magna.</p>
  <p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div><!-- /.col-lg-4 -->
<div class="col-lg-4">
  <img  class="img-producto" id="img-product" style="transform: matrix(1, 0, 0, 1, 0, 0);" src="https://orig00.deviantart.net/3382/f/2008/336/6/b/lentera_by_nangz.jpg" alt="Generic placeholder image" width="160" height="180">
  <h2>Leche Pasteurizada Semidescremada</h2>
  <p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh.</p>
  <p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div><!-- /.col-lg-4 -->
<div class="col-lg-4">
  <img class="img-producto"  id="img-product" style="transform: matrix(1, 0, 0, 1, 0, 0);" src="https://orig00.deviantart.net/3382/f/2008/336/6/b/lentera_by_nangz.jpg" alt="Generic placeholder image" width="160" height="180">
  <h2>Heading</h2>
  <p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
  <p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div>
    
answered by 20.12.2017 / 20:40
source