0

0

Splide.js 垂直全屏滑块实现单页滚动的精确控制

心靈之曲

心靈之曲

发布时间:2025-10-17 11:07:17

|

472人浏览过

|

来源于php中文网

原创

Splide.js 垂直全屏滑块实现单页滚动的精确控制

本文旨在解决使用 splide.js 实现垂直全屏滑块时,鼠标滚轮交互导致多页滑动的问题。通过详细阐述 `perpage` 和 `permove` 两个核心配置项的作用,指导开发者如何精确控制每次滚轮事件只滑动一页,从而实现流畅、专业的单页全屏滚动体验。

Splide.js 垂直全屏滑块单页滚动控制指南

在使用 Splide.js 构建垂直全屏滑块时,开发者常遇到一个挑战:当启用鼠标滚轮导航功能后,滑块在一次滚轮操作中可能会意外地滑动多页,而非预期的单页滚动。这通常发生在配置了 direction: 'ttb' (从上到下) 和 wheel: true (启用滚轮) 等选项之后。为了实现精确的单页滚动体验,我们需要深入理解并合理配置 Splide.js 的 perPage 和 perMove 选项。

理解 perPage 与 perMove

Splide.js 提供了丰富的配置选项来精细控制滑块的行为,其中 perPage 和 perMove 对于实现单页滚动至关重要:

  1. perPage (每页显示数量)

    • 此选项决定了在容器中同时显示多少个滑块。
    • 对于“全屏”滑块,通常意味着一次只显示一个完整的滑块内容,因此 perPage 常常被设置为 1。这确保了每个滑块元素都能占据整个视口区域(配合适当的 CSS 样式,如 height: 100vh)。
    • 如果 perPage 设置为大于 1 的值,则表示在滑块容器中会同时显示多个滑块。
  2. perMove (每次移动数量)

    • 此选项控制每次滑块移动操作(无论是通过导航箭头、分页器、触摸滑动还是鼠标滚轮)时,实际移动的滑块数量。
    • 为了实现“每次滚轮交互只滑动一页”的效果,perMove 必须设置为 1。这意味着无论用户如何操作,滑块都只会向前或向后移动一个单位的滑块。

实现单页滚动的关键配置

要实现一个垂直的全屏滑块,并且确保每次鼠标滚轮操作只滑动一页,核心在于将 perMove 设置为 1。同时,为了确保每个滑块都能呈现为“全屏”效果,我们通常会将 perPage 也设置为 1,并配合 CSS 样式来定义滑块的高度。

IBM Watson
IBM Watson

IBM Watson文字转语音

下载

以下是实现这种效果的 Splide.js 配置示例:

document.addEventListener('DOMContentLoaded', function () {
  new Splide('#fullpage-slider', {
    direction: 'ttb',       // 设置滑块方向为从上到下 (Top to Bottom)
    height: '100vh',        // 设置滑块容器高度为视口高度,实现全屏效果
    wheel: true,            // 启用鼠标滚轮导航
    perPage: 1,             // 每页显示一个滑块
    perMove: 1,             // 每次移动一个滑块
    arrows: false,          // 可选:隐藏导航箭头
    pagination: false,      // 可选:隐藏分页器
    speed: 800,             // 可选:设置滑动速度,单位毫秒
    easing: 'cubic-bezier(0.25, 1, 0.5, 1)', // 可选:设置缓动函数
    // 其他可能需要的选项,例如:
    // keyboard: true,       // 启用键盘导航
    // drag: false,          // 禁用拖动滑动,专注于滚轮和键盘导航
  }).mount();
});

HTML 结构示例

为了配合上述 JavaScript 配置,您的 HTML 结构应包含一个 Splide 容器和多个滑块项:




    
    
    Splide.js 垂直全屏滑块
    
    



    
  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5

注意事项与优化

  • CSS 样式: 确保 .splide__track 和 .splide__slide 都设置了 height: 100vh,以保证每个滑块项能真正占据整个视口高度。同时,body 上的 overflow: hidden 可以防止浏览器自身的滚动条出现,确保 Splide 的滚轮控制能完全接管。
  • 平滑度: speed 和 easing 选项可以调整滑动动画的速度和缓动效果,从而优化用户体验。
  • 其他滚轮选项: Splide 还提供了 wheelMinThreshold (滚轮最小阈值) 和 wheelSleep (滚轮休眠时间) 等选项。这些选项主要用于微调滚轮灵敏度和防止过快连续触发,但解决“一次滑动多页”的核心问题仍是 perMove: 1。在 perMove: 1 生效后,可以根据需要进一步调整这些选项来优化滚轮交互的感受。
  • 可访问性: 考虑为滑块添加键盘导航 (keyboard: true) 或其他辅助功能,以提升用户体验。

总结

通过正确配置 Splide.js 的 perPage: 1 和 perMove: 1 选项,结合 direction: 'ttb' 和 height: '100vh',开发者可以轻松实现一个功能完善、响应灵敏且每次鼠标滚轮交互只滑动一页的垂直全屏滑块。这种精确的控制不仅提升了用户体验,也使得基于 Splide.js 的全屏演示或导航变得更加专业和流畅。

相关专题

更多
js获取数组长度的方法
js获取数组长度的方法

在js中,可以利用array对象的length属性来获取数组长度,该属性可设置或返回数组中元素的数目,只需要使用“array.length”语句即可返回表示数组对象的元素个数的数值,也就是长度值。php中文网还提供JavaScript数组的相关下载、相关课程等内容,供大家免费下载使用。

557

2023.06.20

js刷新当前页面
js刷新当前页面

js刷新当前页面的方法:1、reload方法,该方法强迫浏览器刷新当前页面,语法为“location.reload([bForceGet]) ”;2、replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,不能通过“前进”和“后退”来访问已经被替换的URL,语法为“location.replace(URL) ”。php中文网为大家带来了js刷新当前页面的相关知识、以及相关文章等内容

396

2023.07.04

js四舍五入
js四舍五入

js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。php中文网为大家带来了js四舍五入的相关知识、以及相关文章等内容

756

2023.07.04

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

479

2023.09.01

JavaScript转义字符
JavaScript转义字符

JavaScript中的转义字符是反斜杠和引号,可以在字符串中表示特殊字符或改变字符的含义。本专题为大家提供转义字符相关的文章、下载、课程内容,供大家免费下载体验。

514

2023.09.04

js生成随机数的方法
js生成随机数的方法

js生成随机数的方法有:1、使用random函数生成0-1之间的随机数;2、使用random函数和特定范围来生成随机整数;3、使用random函数和round函数生成0-99之间的随机整数;4、使用random函数和其他函数生成更复杂的随机数;5、使用random函数和其他函数生成范围内的随机小数;6、使用random函数和其他函数生成范围内的随机整数或小数。

1071

2023.09.04

如何启用JavaScript
如何启用JavaScript

JavaScript启用方法有内联脚本、内部脚本、外部脚本和异步加载。详细介绍:1、内联脚本是将JavaScript代码直接嵌入到HTML标签中;2、内部脚本是将JavaScript代码放置在HTML文件的`<script>`标签中;3、外部脚本是将JavaScript代码放置在一个独立的文件;4、外部脚本是将JavaScript代码放置在一个独立的文件。

659

2023.09.12

Js中Symbol类详解
Js中Symbol类详解

javascript中的Symbol数据类型是一种基本数据类型,用于表示独一无二的值。Symbol的特点:1、独一无二,每个Symbol值都是唯一的,不会与其他任何值相等;2、不可变性,Symbol值一旦创建,就不能修改或者重新赋值;3、隐藏性,Symbol值不会被隐式转换为其他类型;4、无法枚举,Symbol值作为对象的属性名时,默认是不可枚举的。

554

2023.09.20

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3万人学习

CSS教程
CSS教程

共754课时 | 23万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号