当前位置:首页 > JavaScript

js实现左右滑动

2026-04-03 22:47:28JavaScript

js实现左右滑动

实现左右滑动的 JavaScript 方法

使用 Touch 事件监听

const slider = document.querySelector('.slider');
let startX, moveX, isDragging = false;

slider.addEventListener('touchstart', (e) => {
  startX = e.touches[0].clientX;
  isDragging = true;
});

slider.addEventListener('touchmove', (e) => {
  if (!isDragging) return;
  moveX = e.touches[0].clientX - startX;
  slider.style.transform = `translateX(${moveX}px)`;
});

slider.addEventListener('touchend', () => {
  isDragging = false;
  // 添加滑动结束后的逻辑,如复位或切换页面
});

使用鼠标事件实现桌面端兼容

slider.addEventListener('mousedown', (e) => {
  startX = e.clientX;
  isDragging = true;
});

slider.addEventListener('mousemove', (e) => {
  if (!isDragging) return;
  moveX = e.clientX - startX;
  slider.style.transform = `translateX(${moveX}px)`;
});

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

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

添加 CSS 过渡效果

.slider {
  transition: transform 0.3s ease-out;
  will-change: transform;
}

实现惯性滑动

slider.addEventListener('touchend', () => {
  isDragging = false;
  const velocity = moveX / 10; // 简单速度计算
  const threshold = 50; // 滑动阈值

  if (Math.abs(moveX) > threshold) {
    const direction = moveX > 0 ? 1 : -1;
    // 执行滑动动画
  }
});

完整示例代码

<div class="slider-container">
  <div class="slider">
    <!-- 滑动内容 -->
  </div>
</div>

<style>
.slider-container {
  overflow: hidden;
  position: relative;
}
.slider {
  display: flex;
  transition: transform 0.3s ease-out;
}
</style>

<script>
// 整合上述JavaScript代码
</script>

这些方法提供了从基础到进阶的滑动实现方案,可根据具体需求调整参数和交互细节。

标签: js
分享给朋友:

相关文章

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js实现二叉树

js实现二叉树

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

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…