【p-seamless-scroll】一个创建无缝滚动效果的 js 插件

news2024/11/20 12:40:10

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,
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1709760.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【uniapp】uniapp页面介绍

目录 开发工具&#xff1a;HBuilderX介绍特点和功能 页面简介页面管理新建页面删除页面页面改名pages.json 设置应用首页 页面内容构成template模板区script 脚本区export default 外的代码export default 里的代码 style样式区 页面生命周期Vue2 页面及组件生命周期流程图Vue3…

养猫这5个必备神器你还没用?宠物空气净化器吸毛效果惊人!

养猫的铲屎官们&#xff0c;你们是否经常为家里的猫毛和异味感到困扰&#xff1f;尽管养猫能带来许多欢乐&#xff0c;但随之而来的猫毛和气味问题确实让人头疼。今天&#xff0c;我将为大家介绍养猫的五个必备神器&#xff0c;特别是宠物空气净化器&#xff0c;它在吸毛和去除…

官宣!马斯克的xAI获60亿美元融资,估值240亿美元

5月27日晚&#xff0c;马斯克旗下的大模型平台xAI在官网宣布获得60亿美元B轮融资&#xff0c;估值240亿美元。本次主要投资者包括Valor Equity Partners、红杉资本、国王控股、沙特王子-Bin Talal、Vy Capital等。 这也是大模型赛道史上最高单笔融资之一&#xff0c;超过Anthr…

Spring:事务(tx)

1. 简介 spring对jdbc进行封装&#xff0c;简化对数据库的操作 2. HelloWorld 1. 搭建模块 2.加入依赖 <dependencies><!--spring jdbc Spring 持久化层支持jar包--><dependency><groupId>org.springframework</groupId><artifactId>s…

基于ERNIE Bot SDK开发智趣灯谜会游戏

项目背景 猜灯谜是中国传统节日元宵节中一种深受人们喜爱的民间游戏&#xff0c;它集趣味性、知识性和艺术性于一体&#xff0c;是中华文化的重要组成部分。猜灯谜&#xff0c;顾名思义&#xff0c;就是通过解读谜面来猜测谜底&#xff0c;谜底通常是各种物品、现象或概念。 猜…

驱动未来:IT行业的现状与发展趋势

前言 随着技术的不断进步&#xff0c;IT行业已成为推动全球经济和社会发展的关键力量。从云计算、大数据、人工智能到物联网、5G通信和区块链&#xff0c;这些技术正在重塑我们的生活和工作方式。本文将探讨IT行业的现状和未来发展趋势&#xff0c;并邀请行业领袖、技术专家和…

JAVA面试题大全(十八)

1、说一下 jvm 的主要组成部分&#xff1f;及其作用&#xff1f; 类加载器&#xff08;ClassLoader&#xff09;运行时数据区&#xff08;Runtime Data Area&#xff09;执行引擎&#xff08;Execution Engine&#xff09;本地库接口&#xff08;Native Interface&#xff09;…

如何本地 Debug React 源码

日常开发过程中&#xff0c;有时 debug react 源代码进行问题排查。一种方案是直接把通过 html 引入进来&#xff0c;另外一种是编译并通过 yarn 链接到项目中&#xff0c;本地将介绍如何通过这两种方法进行代码 Debug。 页面引入源代码方式 这种方式比较简单&#xff0c;直接…

【网络协议】一文带你搞懂Tcp和Udp(万字详解)

文章目录 前言一、端口号端口号的范围划分 二、UDP和TCP2.1 UDP2.2 UDP的特点 三、TCP四、TCP的十个核心机制1.确认应答机制2.超时重传3.连接管理--三次握手 四次挥手**三次握手**四次挥手 4.滑动窗口5.流量控制6.阻塞控制7.延迟应答8.捎带应答9.粘包问题10.异常情况 前言 再上…

LabVIEW中实现Trio控制器的以太网通讯

在LabVIEW中实现与Trio控制器的以太网通讯&#xff0c;可以通过使用TCP/IP协议来完成。这种方法包括配置Trio控制器的网络设置、使用LabVIEW中的TCP/IP函数库进行数据传输和接收&#xff0c;以及处理通讯中的错误和数据解析。本文将详细说明实现步骤&#xff0c;包括配置、编程…

为什么选择CleanMyMac软件呢?推荐理由

你是否曾经遇到过这样的问题&#xff1a;电脑运行缓慢&#xff0c;存储空间不足&#xff0c;不知道如何清理垃圾文件&#xff1f;别担心&#xff0c;我们为你找到了解决方案——CleanMyMac软件。这款强大的工具可以帮助你轻松解决这些问题&#xff0c;让你的电脑焕然一新&#…

【vue-4】遍历数组或对象v-for

1、遍历数组 <ul><li v-for"(value,index) in web.number">index>{{index}}:value>{{value}}</li> </ul> 知识点&#xff1a; <ul>标签定义无序列表 举例&#xff1a; <ul><li>Coffee</li><li>Tea…

【Mac】Ulysses for Mac(优秀的markdown写作软件) v34.3中文版安装教程

软件介绍 哪款markdown写作软件最好用&#xff1f;小编推荐您使用尤利西斯&#xff1a;Ulysses mac版&#xff01;这是mac上一款优秀的markdown写作工具。Ulysses mac版具备全新的Soulmen写作坏境&#xff0c;采用了革命性的功能增强&#xff0c;结合了最好的部分最小标记&…

项目开发-若依框架

文章目录 框架下载及运行项目学习需求修改左侧菜单栏增加标签-项目信息搭建过程问题解决 后续需要看的内容 框架下载及运行 下载安装&#xff1a; https://blog.csdn.net/anxiaoxiao61/article/details/122505963 https://blog.csdn.net/m0_67376124/article/details/12761749…

ARTS Week 31

Algorithm 本周的算法题为 1556. 千位分隔数 给你一个整数 n&#xff0c;请你每隔三位添加点&#xff08;即 "." 符号&#xff09;作为千位分隔符&#xff0c;并将结果以字符串格式返回。 示例 1&#xff1a;输入&#xff1a;n 123456789输出&#xff1a;"123.…

D2Admin:企业中后台产品前端集成方案的探索与实践

D2Admin&#xff1a;企业中后台产品前端集成方案的探索与实践 摘要&#xff1a;随着企业信息化建设的不断深入&#xff0c;中后台管理系统的前端技术选型与集成方案成为了关键。D2Admin作为一款完全开源免费的前端集成方案&#xff0c;通过采用最新的前端技术栈&#xff0c;提…

基于jeecgboot-vue3的Flowable增加表单功能(二)

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 接上一节 6、增加一个types.ts 类型 export interface FormForm {id: number | string | undefined;formName: string;formContent?: string;remark: string; } 7、api增加一个getForm…

AI大模型日报#0528:Greg专访 | 为什么OpenAI最先做出GPT-4、xAI获60亿美元融资、李飞飞经典对话Hinton

导读&#xff1a;AI大模型日报&#xff0c;爬虫LLM自动生成&#xff0c;一文览尽每日AI大模型要点资讯&#xff01;目前采用“文心一言”&#xff08;ERNIE 4.0&#xff09;、“零一万物”&#xff08;Yi-34B&#xff09;生成了今日要点以及每条资讯的摘要。欢迎阅读&#xff0…

Android USB调试模式下自动上下滑动(Go实现)

简介 有的时候要对手机UI界面进行滑动测试&#xff0c; 手动或许太消耗时间&#xff0c; 理由Android USB调试模式对UI进行上下滑动测试。 adb指令 使用adb --help 可以查看所有的adb支持指令, 但这里我们只需要上下, 使用到的指令&#xff1a; adb devices #列举所有设备 ad…

Git简单理解

Git 概述 Git 是一个免费的开源的&#xff0c;分布式版本控制系统&#xff0c;可以快速高效的处理从小型到大型的各种项目 Git占地面积小&#xff0c;性能极快&#xff0c;具有廉价的本地库&#xff0c;方便的暂存区和多个工作流分支等特性 版本控制 版本控制是一种记录文件…