<div class="main">
  <div class="box box1"></div>
  <div class="box box2"></div>
  <div class="box box3"></div>
  <div class="box box4"></div>
  <div class="box box5"></div>
  <div class="box box6"></div>
</div>
.main {
  display: flex;
  align-items: center;
  justify-content: space-around;
  width: 600px;
  height: 300px;
  margin: 100px auto;
  border: 1px solid #000;
}

.box {
  width: 50px;
  height: 50px;
  background-color: red;
  border-radius: 50%;
  transition: width 0.25s, height 0.2s;
}
var mainBox = $(".main"),
  box = $(".box"),
  boxLen = box.length;

mainBox
  .on("mousemove", function (e) {
    for (var i = 0; i < boxLen; i++) {
      var item = $(box[i]),
        d = getDistance(e, item),
        factor = 250;
      d = Math.min(d, factor);

      var num = ((factor - d) / factor + 1) * 50;
      item.css({
        width: num + "px",
        height: num + "px"
      });
    }
  })
  .on("mouseout", function (e) {
    if (e.target.className !== "main") return;
    for (var i = 0; i < boxLen; i++) {
      var item = $(box[i]);
      item.css({
        width: "50px",
        height: "50px"
      });
    }
  });

function getDistance(e, dom) {
  var e = e || window.event,
    x = Math.abs(e.clientX - dom.offset().left - dom.width() / 2),
    y = Math.abs(e.clientY - dom.offset().top - dom.height() / 2),
    c = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));

  return c;
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js