当前位置:首页 > JavaScript

js实现滑进滑出效果

2026-01-31 01:07:08JavaScript

使用CSS Transition实现滑进滑出

通过CSS的transition属性和transformmargin变化实现平滑滑动效果。需定义初始状态和结束状态的样式,通过JavaScript切换类名触发动画。

<style>
  .box {
    width: 100px;
    height: 100px;
    background: blue;
    transition: transform 0.5s ease;
    transform: translateX(-100%);
  }
  .box.active {
    transform: translateX(0);
  }
</style>

<div class="box"></div>
<button onclick="toggleSlide()">切换</button>

<script>
  function toggleSlide() {
    document.querySelector('.box').classList.toggle('active');
  }
</script>

使用CSS Animation实现滑动

通过@keyframes定义动画关键帧,结合JavaScript动态添加动画类。适合需要更复杂动画路径的场景。

js实现滑进滑出效果

<style>
  @keyframes slideIn {
    from { transform: translateX(-100%); }
    to { transform: translateX(0); }
  }
  @keyframes slideOut {
    from { transform: translateX(0); }
    to { transform: translateX(-100%); }
  }
  .slide-in { animation: slideIn 0.5s forwards; }
  .slide-out { animation: slideOut 0.5s forwards; }
</style>

<div id="box" style="width:100px;height:100px;background:red;"></div>
<button onclick="playAnimation()">播放</button>

<script>
  let isIn = false;
  function playAnimation() {
    const box = document.getElementById('box');
    box.className = isIn ? 'slide-out' : 'slide-in';
    isIn = !isIn;
  }
</script>

使用Web Animations API

现代浏览器支持的底层API,可直接通过JavaScript控制动画。提供更精细的动画控制能力。

js实现滑进滑出效果

const box = document.getElementById('box');
box.animate([
  { transform: 'translateX(0)' },
  { transform: 'translateX(100px)' }
], {
  duration: 500,
  fill: 'forwards'
});

使用GSAP库实现高级滑动

GSAP提供更强大的动画控制,支持缓动函数、时间轴等高级特性。

<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/gsap.min.js"></script>

<div id="box" style="width:100px;height:100px;background:green;"></div>
<button onclick="gsapSlide()">滑动</button>

<script>
  function gsapSlide() {
    gsap.to("#box", {
      x: 100,
      duration: 0.5,
      ease: "power2.inOut"
    });
  }
</script>

响应式滑动效果实现

结合窗口大小检测,实现自适应滑动距离的效果。使用window.innerWidth计算动态滑动距离。

function responsiveSlide() {
  const distance = window.innerWidth * 0.8;
  document.getElementById('box').style.transform = `translateX(${distance}px)`;
}

标签: 滑出效果
分享给朋友:

相关文章

h5实现左右滚动效果

h5实现左右滚动效果

使用CSS实现横向滚动 在HTML5中实现左右滚动效果,可以通过CSS的overflow-x属性配合white-space或flex布局实现。以下是一个基础示例: <div class="sc…

vue实现突出效果

vue实现突出效果

Vue 实现突出效果的方法 在 Vue 中实现突出效果通常涉及动态样式绑定、动画过渡或第三方库的使用。以下是几种常见实现方式: 动态类名绑定 通过 v-bind:class 或简写 :class 实…

vue实现玻璃效果

vue实现玻璃效果

实现玻璃效果的方法 在Vue中实现玻璃效果(毛玻璃或磨砂玻璃)可以通过CSS的backdrop-filter属性结合Vue的动态样式绑定来实现。以下是具体步骤: 使用CSS backdrop-fil…

vue实现翻书效果

vue实现翻书效果

Vue实现翻书效果的方法 翻书效果可以通过CSS动画和Vue的动态绑定实现,以下是几种常见的实现方式: 使用CSS transform和transition 通过CSS的transform属…

react如何添加效果

react如何添加效果

React 添加动画效果的方法 使用 CSS 过渡动画 在 React 组件中直接通过 className 或 style 属性应用 CSS 过渡效果。定义 CSS 类包含 transition 属性…

vue实现开关效果

vue实现开关效果

使用Vue实现开关效果 使用v-model绑定数据 通过v-model绑定一个布尔值来控制开关状态。当用户点击开关时,布尔值会自动更新。 <template> <div cla…