当前位置:首页 > 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

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…

js进度条实现

js进度条实现

使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…

js实现定位

js实现定位

使用Geolocation API获取当前位置 在JavaScript中,可以通过浏览器内置的Geolocation API获取用户的地理位置信息。该API需要用户授权才能访问位置数据。 if (n…

js实现同步

js实现同步

同步与异步的概念 在JavaScript中,同步代码会按照顺序执行,每一行代码必须等待上一行代码执行完成后才能运行。异步代码则允许在等待某些操作(如网络请求)完成的同时继续执行其他代码。 实现同步的…