当前位置:首页 > 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如何实现vr效果

h5如何实现vr效果

使用WebXR API实现VR效果 WebXR是浏览器中实现VR/AR的核心API,支持设备姿态追踪、渲染交互等功能。需在支持WebXR的设备(如Oculus、HTC Vive)或浏览器模拟环境中运行…

js实现图片滚动效果

js实现图片滚动效果

使用CSS动画实现图片滚动 通过CSS的@keyframes和animation属性实现无缝滚动效果。将图片容器设置为横向排列,通过动画平移位置。 <style> .scroll-c…

vue实现玻璃效果

vue实现玻璃效果

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

vue实现翻书效果

vue实现翻书效果

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

vue中实现滑出

vue中实现滑出

vue中实现滑出效果 使用CSS过渡动画 在Vue中可以通过<transition>组件配合CSS实现滑出效果。定义一个从右侧滑入的动画: <transition name="sl…

react如何添加效果

react如何添加效果

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