当前位置:首页 > JavaScript

js实现滑动显示

2026-02-03 05:50:13JavaScript

实现滑动显示的基本方法

使用CSS的transitiontransform属性实现平滑滑动效果。通过JavaScript动态添加或移除类名来控制元素的显示与隐藏。

.slide-element {
  transition: transform 0.3s ease;
  transform: translateX(-100%);
}

.slide-element.show {
  transform: translateX(0);
}
const element = document.querySelector('.slide-element');
element.classList.add('show'); // 显示元素
element.classList.remove('show'); // 隐藏元素

使用Intersection Observer API

Intersection Observer API可以检测元素是否进入视口,实现滚动时自动显示效果。

js实现滑动显示

const observer = new IntersectionObserver((entries) => {
  entries.forEach(entry => {
    if (entry.isIntersecting) {
      entry.target.classList.add('show');
    } else {
      entry.target.classList.remove('show');
    }
  });
});

document.querySelectorAll('.slide-element').forEach(el => {
  observer.observe(el);
});

实现横向滑动菜单

创建一个横向滑动的导航菜单,可以通过触摸或鼠标拖动。

let isDown = false;
let startX;
let scrollLeft;
const slider = document.querySelector('.slider');

slider.addEventListener('mousedown', (e) => {
  isDown = true;
  startX = e.pageX - slider.offsetLeft;
  scrollLeft = slider.scrollLeft;
});

slider.addEventListener('mouseleave', () => {
  isDown = false;
});

slider.addEventListener('mouseup', () => {
  isDown = false;
});

slider.addEventListener('mousemove', (e) => {
  if(!isDown) return;
  e.preventDefault();
  const x = e.pageX - slider.offsetLeft;
  const walk = (x - startX) * 2;
  slider.scrollLeft = scrollLeft - walk;
});

使用GSAP实现高级动画

GSAP库提供更强大的动画控制能力,适合复杂的滑动效果。

js实现滑动显示

gsap.from(".slide-element", {
  duration: 1,
  x: -100,
  opacity: 0,
  stagger: 0.1,
  ease: "power2.out"
});

响应式滑动面板

创建一个响应式的滑动面板,可以在移动设备上通过触摸手势操作。

const panel = document.getElementById('slide-panel');
let touchStartX = 0;
let touchEndX = 0;

panel.addEventListener('touchstart', (e) => {
  touchStartX = e.changedTouches[0].screenX;
});

panel.addEventListener('touchend', (e) => {
  touchEndX = e.changedTouches[0].screenX;
  handleSwipe();
});

function handleSwipe() {
  if (touchEndX < touchStartX) {
    panel.classList.add('open');
  }
  if (touchEndX > touchStartX) {
    panel.classList.remove('open');
  }
}

实现无限循环滑动

创建一个无限循环的滑动效果,常用于轮播图或产品展示。

const slider = document.querySelector('.infinite-slider');
let currentPosition = 0;
const slideWidth = 300;
const totalSlides = document.querySelectorAll('.slide').length;

function slideNext() {
  currentPosition -= slideWidth;
  if (currentPosition <= -slideWidth * totalSlides) {
    currentPosition = 0;
  }
  slider.style.transform = `translateX(${currentPosition}px)`;
}

setInterval(slideNext, 3000);

标签: js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https:/…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEv…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…