使用 jquery 将鼠标悬停在每个 div 上时,如何同时平滑地调整多个 div 的大小

How to resize multiple divs at the same time smoothly when hover over each one using jquery

我想做的是

增加悬停在上的div的宽度,并同样减少其他3个[=的宽度57=]s.

因此,如果 "div1" 悬停在上方, 那么 "div1" 宽度需要 "40%"

其他 3 divs 宽度将变为 "20%",这将等于 100%

这适用于我的代码,但它并不流畅,当我快速悬停在多个 div 上时,一切都变得一团糟。非常有问题

我做错了什么?

Link 我正在尝试做的事情https://constructlar.atakansaracoglu.com/

我的HTML:

<div class="container">
   <div class="div1">
   </div><div class="div2">
   </div><div class="div3">
   </div><div class="div4">
   </div>
</div>

我的CSS:

.container div {
   position: relative;
   display: inline-block;
   width: 25%;
}

我的脚本:

$(document).ready(function(){
  $('.container div').hover(function(){
     let $this = $(this);
     $this.siblings().animate({
       'width' : '19%'
     },200);
     $this.delay(200).animate({
       'width' :'40%'
     },300);
  });
});

使用 CSS 和 transition 属性 而不是 jQuery 使页面更流畅。

.container div {
   position: relative;
   display: inline-block;
   width: 25%;
   height: 100px;
   transition: width 0.4s;
}

.container:hover div {
    width: 20%;
}

.container div:hover {
    width: 40%;
}
<div class="container">
   <div class="div1" style="background:red">
   </div><div class="div2" style="background:cyan">
   </div><div class="div3" style="background:yellow">
   </div><div class="div4" style="background:green">
   </div>
</div>