react 使用react-seamless-scroll实现无缝滚动

文章目录

  • 1. 实现无缝滚动效果
  • 2. react-seamless-scroll 无缝滚动案例介绍
  • 3. react 项目集成
    • 3.1 项目引入 `cssSeamlessScroll` 滚动组件
    • 3.2 完整代码
      • 3.2.1 newBet.tsx 代码
      • 3.2.2 index.module.scss

1. 实现无缝滚动效果

  1. 实现单步向下滚动
  2. 点击更多展开,收起,调整 scroll 高度

请添加图片描述

2. react-seamless-scroll 无缝滚动案例介绍

  1. 项目地址 react-seamless-scroll
  2. 拉下来跑起来效果(gif录屏有点卡,实际很丝滑)
    请添加图片描述
  3. 可以支持多种无缝滚动方案,如 向下滚动向左滚动滚动速度鼠标悬停单布停顿单行停顿时间数组属性更新数组添加数据图表滚动
  4. react-seamless-scroll 无缝滚动有两种实现方式,一种是 cssSeamlessScroll,另外一种是 jsSeamlessScroll

3. react 项目集成

3.1 项目引入 cssSeamlessScroll 滚动组件

1.这里我使用的 cssSeamlessScroll 的。
2. 将 cssSeamlessScroll 组件 的代码复制到项目中

在这里插入图片描述

3.2 完整代码

3.2.1 newBet.tsx 代码

import React, { useState } from 'react';
import style from '../style/index.module.scss';
// 导入滚动的cssSeamlessScroll
import CssSeamlessScroll from './cssSeamlessScroll/cssSeamlessScroll'const NewBet = () => {const [height, setHeight] = useState(320);// mock 后端返回数据const [arr, setArr] = useState([{ gameName: '象财神', player: 'Dorothy MurrayDorothy Murray', betAmount: 4020, profit: -476.53 },{ gameName: '皇上吉祥', player: '隐身', betAmount: 4020, profit: 516.82 },{ gameName: '水果丛林', player: 'Frederick Long', betAmount: 4020, profit: 809.59 },{ gameName: '唐伯虎点秋香', player: '隐身', betAmount: 4020, profit: -928.13 },{ gameName: '鼠鼠福福', player: 'Adele Moody', betAmount: 4020, profit: -901.85 },{ gameName: '宝石侠-1111', player: 'Maggie Cobb', betAmount: 4020, profit: 135.91 },{ gameName: '糖果连连爆', player: 'Jeremiah Harran', betAmount: 4020, profit: 960.88 },{ gameName: '艳后之迷', player: 'Nellie Wong', betAmount: 4020, profit: 227.48 },{ gameName: '象财神', player: 'Dorothy MurrayDorothy Murray', betAmount: 4020, profit: -476.53 },{ gameName: '皇上吉祥', player: '隐身', betAmount: 4020, profit: 516.82 },{ gameName: '水果丛林', player: 'Frederick Long', betAmount: 4020, profit: 809.59 },{ gameName: '唐伯虎点秋香', player: '隐身', betAmount: 4020, profit: -928.13 },{ gameName: '鼠鼠福福', player: 'Adele Moody', betAmount: 4020, profit: -901.85 },{ gameName: '宝石侠-1111', player: 'Maggie Cobb', betAmount: 4020, profit: 135.91 },{ gameName: '糖果连连爆', player: 'Jeremiah Harran', betAmount: 4020, profit: 960.88 },{ gameName: '艳后之迷', player: 'Nellie Wong', betAmount: 4020, profit: 227.48 },]);return (<div className={style.newBetContent}><div className='px-3 text-white'><div className={style.table}><div className={style.header}><span>游戏</span><span>玩家</span><span>投注</span><span>利润额</span></div><div className={style.scroll} style={{ height: height + 'px' }}><CssSeamlessScroll datas={arr} direction="down" duration={20} step={16}>{arr.map((_item, _index) => (<div className={style.item}><span><img className='h-5 mr-1' src={require('@/branch/assets/images/home/majorVictory/icon-gold.png')} />{_item.gameName}</span><span>{_item.player}</span><span>{_item.betAmount}</span><span className={_item.profit > 0 ? style.green : style.red}>{_item.profit}<img className='h-3 ml-1' src={require('@/branch/assets/images/home/majorVictory/icon-gold.png')} /></span></div>))}</CssSeamlessScroll></div><div className={style.moreBtn} onClick={() => {setHeight(height == 320 ? 520 : 320)}}><span>展示更多</span>{height == 320 ?<img className='h-3 ml-2' src={require('@/branch/assets/images/sclog/bh.png')} /> :<img className='h-3 ml-2' src={require('@/branch/assets/images/sclog/zk.png')} />}</div></div></div></div>);
};
export default NewBet;

3.2.2 index.module.scss

.newBetContent {width: 100%;.table,.scroll {.header,.item {height: 40px;display: flex;align-items: center;color: #93acd3;font-size: 12px;span {text-align: left;img {vertical-align: middle;}&:nth-child(1),&:nth-child(2) {display: inline-block;width: 103px;white-space: nowrap; /* 强制内容在一行上显示,防止换行 */overflow: hidden; /* 超出容器部分隐藏 */text-overflow: ellipsis; /* 超出容器部分显示省略号 */}&:nth-child(2) {text-align: center;color: #fff;}&:nth-child(3) {text-align: center;display: inline-block;width: 80px;text-align: center;color: #fff;}&:nth-child(4) {display: inline-block;width: 80px;text-align: right;}&.green {color: #3bc116;}&.red {color: #f53202;}}}.header {height: 32px;line-height: 32px;span {&:nth-child(2),&:nth-child(3) {color: #93acd3;}}}}.table {background: #161f2c;border-radius: 10px;padding: 0px 8px;text-align: center;.moreBtn {margin: 16px auto;display: inline-block;font-family: PingFang SC, PingFang SC-Regular;font-weight: Regular;text-align: left;line-height: 14px;background: #1e2837;border-radius: 10px;padding: 9px 12px;span {font-size: 14px;color: #93acd3;}img {margin-top: 1px;}}}.scroll {display: inline-block;width: 100%;overflow: hidden;position: relative;transition: height 0.5s ease;}
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5. RabbitMQ工作模式——RabbitMQ

5. RabbitMQ工作模式——RabbitMQ 5.1. Work queues工作队列模式 5.1.1. 模式说明 Work Queues与入门程序的简单模式相比&#xff0c;多了一个或一些消费端&#xff0c;多个消费端共同消费同一个队列中的消息。 应用场景&#xff1a;对于 任务过重或任务较多情况使用工作队列可…

HarmonyOS ArkTS Blank基本使用(十九)

Blank空白填充组件&#xff0c;在容器主轴方向上&#xff0c;空白填充组件具有自动填充容器空余部分的能力。仅当父组件为Row/Column/Flex时生效。 接口 Blank(min?: number | string) 从API version 9开始&#xff0c;该接口支持在ArkTS卡片中使用。 示例1&#xff1a; Blan…

vulhub中 Apache Airflow Celery 消息中间件命令执行漏洞复现(CVE-2020-11981)

Apache Airflow是一款开源的&#xff0c;分布式任务调度框架。在其1.10.10版本及以前&#xff0c;如果攻击者控制了Celery的消息中间件&#xff08;如Redis/RabbitMQ&#xff09;&#xff0c;将可以通过控制消息&#xff0c;在Worker进程中执行任意命令。 1.利用这个漏洞需要控…

深度学习-基础过关

众所周知&#xff0c;机器学习是一门跨学科的学科&#xff0c;主要研究计算机如何通过学习人类的行为和思维模式&#xff0c;以实现某些特定的功能或目标。它涉及到概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科&#xff0c;使用计算机作为工具并致力于真实实时的…

SpringBoot中数据库的连接及Mybatis的配置和使用

目录 1 在pom.xml中引入相关依赖 2 对数据库进行配置 2.1 配置application.yml 2.2 idea连接数据库 (3.2.1有用到) 3 Mybatis的使用 3.1 测试文件的引入 3.2 使用 3.2.1 使用注解(有小技巧(✪ω✪)) 3.2.2 使用动态sql 1 在pom.xml中引入相关依赖 <dependencies&g…

贪心算法篇2

“星辰野草&#xff0c;造出无边的天地~” 最⻓递增⼦序列 (1) 题目解析 (2) 算法原理 class Solution { public:int lengthOfLIS(vector<int>& nums) {// 使用dp int n nums.size(), ret 1;// 初始化为1vector<int> dp(n1,1);// 从第二个位置…

机器学习复习(5)——激活函数

目录 激活函数分类 区别与优缺点 饱和激活函数 非饱和激活函数 综合考虑 Sigmoid激活函数 Tanh激活函数 ReLU激活函数 Leaky Relu激活函数 Swish激活函数 激活函数分类 激活函数可以分为两大类 &#xff1a; 饱和激活函数&#xff1a;sigmoid、tanh非饱和激活函数:…

《区块链简易速速上手小册》第2章:区块链的工作原理(2024 最新版)

文章目录 2.1 分布式账本技术&#xff08;DLT&#xff09;2.1.1 DLT基础知识2.1.2 主要案例&#xff1a;供应链管理2.1.3 拓展案例 1&#xff1a;数字身份2.1.4 拓展案例 2&#xff1a;投票系统 2.2 加密和安全性2.2.1 加密技术基础2.2.2 主要案例&#xff1a;比特币交易2.2.3 …

基于springboot原创歌曲分享平台源码和论文

随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理平台应运而生&#xff0c;各行各业相继进入信息管理时代&#xf…

kubectl命令

kubenetes部署服务的流程 以部署一个nginx服务来说明kubernetes系统各个组件调用关系&#xff1a; 1. 首先要明确&#xff0c;一旦kubernetes环境启动之后&#xff0c;master和node都会将自身的信息存储到etcd数据库中 2. 一个nginx服务的安装请求会首先被发送到master节点的ap…

VitePress-07-文档中代码块的使用全解

说明 本文会介绍 vitepress 中markdown文档对 代码块的支持特性&#xff0c; 包括基本使用、代码高亮、展示行号、指定代码行高亮、代码聚焦、以及代码删除/新增标记、代码错误和警告标记 等特性的使用。 代码块的基本语法 代码块的基本效果就是 &#xff1a;代码高亮展示&…

C语言进阶之文件操作

一、什么是文件 磁盘上的文件是文件。 但是在程序设计中&#xff0c;我们一般谈的文件有两种&#xff1a;程序文件、数据文件&#xff08;从文件功能的角度来分类的&#xff09;。 1&#xff09;程序文件 包括源程序文件&#xff08;后缀为.c&#xff09;,目标文件&#xff…