p-seamless-scroll
(github:https://github.com/pbstar/p-seamless-scroll)是一个创建无缝滚动效果的 js 插件。它有着轻量且高效的特性,支持丰富的自定义配置选项,提供了一系列 API 方法以及事件监听功能。
特点
丰富的配置选项
p-seamless-scroll
提供了多种配置选项,以满足不同场景的需求。
el
: 滚动容器的 DOM 元素。direction
: 滚动方向,可选值包括 ‘up’ (默认) 、 ‘down’ 、 ‘left’ 、 ‘right’。speed
: 滚动速度,以毫秒为单位,默认为 100。hoverStop
: 是否在鼠标移入时停止滚动,默认为 true。auto
: 是否自动开始滚动,默认为 true。loop
: 是否循环滚动,默认为 true。rest
: 在滚动一段距离后停留一段时间,默认为 null,例如{distance: 100, time: 2000}。distance
: 停留前滚动的距离,以 px 为单位,必须为 10 的整数倍,默认为 100。time
: 停留的时间,以毫秒为单位,默认为 2000。
实用的 API 方法
除了配置选项外,p-seamless-scroll
还提供了一系列实用的 API 方法,使你可以更加灵活地控制滚动效果。
play()
: 开始滚动。如果配置为自动开始滚动,则无需调用此方法。pause()
: 暂停滚动。reload(e)
: 重载配置。接受一个配置对象e
,并更新当前实例的配置。destroy()
: 销毁滚动实例,清除定时器并释放资源。getState()
: 获取当前状态对象,如是否鼠标移入滚动容器、是否暂停滚动等。
事件监听
p-seamless-scroll
还支持事件监听,使你可以在滚动过程中执行特定的操作。
-
on(event, callback)
: 监听事件。event 可以是以下值:hover
: 鼠标移入或移出滚动容器时触发。pause
: 滚动暂停或继续时触发。
-
off(event)
: 移除事件监听。event 可以是以下值:hover
pause
使用示例
在线体验 https://pbstar.github.io/p-seamless-scroll/demo/
安装引入
npm 安装
npm install p-seamless-scroll --save
esm 引入
import pSeamlessScroll from "p-seamless-scroll";
cdn 引入
<script src="https://unpkg.com/p-seamless-scroll@[version]/lib/p-seamless-scroll.umd.js"></script>
使用示例
<style>
.fbox {
width: 160px;
height: 160px;
border: 1px solid #ccc;
overflow: hidden;
}
.sbox {
width: 240px;
height: 240px;
background-image: url(https://pbstar.github.io/p-seamless-scroll/logo.png);
}
</style>
<div class="fbox" id="scrollContainer">
<div class="sbox"></div>
</div>
// 假设已经有一个滚动容器的 DOM 元素,ID 为 'scroll-container'
const scrollContainer = document.getElementById("scroll-container");
// 实例化 pSeamlessScroll
const pss = new pSeamlessScroll({
el: scrollContainer,
});