You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现点击触发Div元素从右侧滑入的CSS Animation效果

实现点击.plat时divValid从右侧滑入的动画效果

核心实现方案

通过设置divValid的初始隐藏状态,搭配CSS过渡属性实现平滑动画,再通过JavaScript监听点击事件切换激活类来触发滑入/滑出效果。

修改后的完整代码

CSS 代码

.plat {
  border: 1px solid black;
  height: 70px;
  width: 95%;
  display: flex;
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
  border-radius: 20px;
  background-color: white;
  margin-bottom: 20px;
  margin-left: 3%;
  cursor: pointer;
  overflow: hidden; /* 防止元素溢出容器 */
}

/* divValid 初始状态:隐藏,宽度为0 */
.divValid {
  border: 1px solid purple;
  background-color: #99E2D0;
  border-radius: 0 20px 20px 0;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 0;
  transition: width 1.5s ease; /* 设置1.5秒的宽度过渡动画 */
  display: flex;
}

/* 点击后激活的类,触发滑入效果 */
.plat.active .divValid {
  width: 20%;
}

.partRouge {
  border: 1px solid red;
  height: 100%;
  width: 100%;
}

.divTitlePlat {
  border: 1px solid orangered;
  height: 50%;
  width: 100%;
  padding-left: 2%;
}

.divTitlePlat h3 {
  font-size: 20px;
  margin-top: 0;
}

.divInfoPlat {
  border: 1px solid blue;
  height: 50%;
  width: 100%;
  display: flex;
  justify-content: space-between;
}

.divDescPlat {
  border: 1px solid green;
  height: 100%;
  width: 80%;
  padding-left: 2%;
}

.divPricePlat {
  border: 1px solid yellow;
  height: 100%;
  width: 20%;
}

HTML 代码

<div class="plat">
  <div class="partRouge">
    <div class="divTitlePlat">
      <h3>Tartare de poulpe acidulé</h3>
    </div>
    <div class="divInfoPlat">
      <div class="divDescPlat">
        <span>Aux zests d'orange</span>
      </div>
      <div class="divPricePlat">
        <span class="price">25€</span>
      </div>
    </div>
  </div>
  <div class="divValid">
    <i class="fa-solid fa-circle-check"></i>
  </div>
</div>

JavaScript 代码(点击切换逻辑)

const platItems = document.querySelectorAll('.plat');

platItems.forEach(item => {
  item.addEventListener('click', () => {
    item.classList.toggle('active'); // 切换激活类,实现显示/隐藏双向动画
  });
});

关键细节说明

  • 给.plat添加overflow: hidden,避免divValid初始宽度为0时仍显示边框
  • 通过transition: width 1.5s ease控制动画时长和曲线,可根据需求调整为1-2秒
  • 点击事件通过classList.toggle实现激活类的切换,同时支持滑入和滑出效果

内容的提问来源于stack exchange,提问作者Saiko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 11:36:07