jquery - 为什么 JQuery 函数会自行移动元素

标签 jquery html css

我不明白为什么mouseleave()正在移动元素。 .card 的原始宽度值为 25%,在 mouseleave() 上它仍然是 25%。当鼠标悬停在卡片上时,卡片会移动。 HTML

 <div id="section">
  <div class="card-container">
    <div class="card"></div>
     <div class="card"></div>
      <div class="card"></div>
       <div class="card"></div>
  </div>
</div>

CSS

 body {
  background: #20262E;
  font-family: Helvetica;
}

#section {
  width: 100%;
  height: 100vh;
  background-color: white;
}
.card-container {
  width: 90%;
  margin: 0 auto;
  display: flex;
}
.card {
  width: 25%;
  height: 300px;
  border: 1px solid black;
  background-color: #ccc;
  margin: 25px 10px;
}

Jquery

$('.card').click(function() {
    $('.card').not($(this)).animate({'width':'10%'}, 400);
    $(this).animate({'width':'70%'}, 400);
    $(this).addClass('show-text');
});
$('.card').mouseleave(function() {
    $('.card').animate({'width':'25%'}, 400);
});

编辑:更新了 fiddle :https://jsfiddle.net/f4hkcjem/5/

最佳答案

你应该添加鼠标悬停功能。有时 mouseleave 无法正常工作

Jquery

$('.card').click(function(){
    $('.card').not($(this)).animate({'width':'10%'}, 400);
    $(this).animate({'width':'70%'}, 400);
    $(this).addClass('show-text');

});
$('body').on( 'mouseout','.card.show-text',function(){
      $('.card').animate({'width':'25%'}, 400);
       $(this).removeClass('show-text');
 });

关于jquery - 为什么 JQuery 函数会自行移动元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60113504/

相关文章:

javascript - 如何使用 jquery 在 Angular 中选择具有 ng-class attr 的元素

html - Font Awesome 的一些图标不起作用,有些图标显示为空方 block

html - 在 chrome 浏览器中将 svg 图像调整为背景

javascript - 检查 css 类是否存在,如果存在多少次

css - SVG 过滤器,在 Firefox 中转换

javascript - 停止 JavaScript 倒计时

jQuery Dialog 多次提交表单

javascript - 替换 Javascript 中的\"with "

html - rails : inject new list items (<li>) into an unordered list element (<ul>)

css - 在 FF 中按下按钮中的文本