当前位置:首页 > JavaScript

js实现上划翻页

2026-02-03 06:03:31JavaScript

监听触摸事件

通过监听 touchstarttouchmovetouchend 事件来捕捉用户滑动行为。记录触摸起始位置和移动距离,判断是否为有效的上滑动作。

let startY = 0;
let endY = 0;

document.addEventListener('touchstart', (e) => {
  startY = e.touches[0].clientY;
});

document.addEventListener('touchmove', (e) => {
  endY = e.touches[0].clientY;
});

判断滑动方向

touchend 事件中计算垂直滑动距离和方向。若滑动距离超过阈值且方向向上,则触发翻页逻辑。

js实现上划翻页

document.addEventListener('touchend', () => {
  const distance = endY - startY;
  const isSwipeUp = distance < -50; // 阈值设为50px

  if (isSwipeUp) {
    goToNextPage();
  }
});

翻页动画效果

使用 CSS 过渡或动画实现平滑的翻页效果。通过添加/移除类名控制页面切换动画。

function goToNextPage() {
  const currentPage = document.querySelector('.page.active');
  const nextPage = document.querySelector('.page:not(.active)');

  currentPage.classList.remove('active');
  nextPage.classList.add('active');
}

CSS 样式示例

为页面容器和动画效果添加基础样式,确保滑动时视觉连贯性。

js实现上划翻页

.page {
  position: absolute;
  width: 100%;
  height: 100%;
  transition: transform 0.3s ease;
}
.page.active {
  transform: translateY(0);
}
.page:not(.active) {
  transform: translateY(100%);
}

边界条件处理

禁止在页面过渡期间重复触发翻页,可通过标志位控制。

let isAnimating = false;

function goToNextPage() {
  if (isAnimating) return;
  isAnimating = true;

  // 翻页逻辑...
  setTimeout(() => {
    isAnimating = false;
  }, 300); // 匹配CSS动画时长
}

多页场景扩展

对于多页场景,可通过数组或自定义属性管理页面索引。

let currentIndex = 0;
const pages = document.querySelectorAll('.page');

function goToNextPage() {
  if (currentIndex >= pages.length - 1) return;

  pages[currentIndex].classList.remove('active');
  currentIndex++;
  pages[currentIndex].classList.add('active');
}

标签: 翻页js
分享给朋友:

相关文章

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…

js实现原理

js实现原理

JavaScript 实现原理 JavaScript 是一种解释型语言,其实现原理涉及多个核心组件和运行机制,包括引擎、运行时环境、事件循环等。 引擎与解释执行 现代 JavaScript 引擎(如…

js实现图片放大

js实现图片放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性实现图片放大效果。当鼠标悬停时,图片会平滑放大。 const img = document…

js 实现日历

js 实现日历

实现日历的基本思路 日历的核心功能是展示日期,并允许用户进行日期选择或导航。JavaScript 可以动态生成日历的 HTML 结构,并处理用户交互逻辑。 基础日历结构 日历通常包含头部(显示月份和…