当前位置: 首页 > news >正文

php网站开发代码买业务送网站

php网站开发代码,买业务送网站,网站开发公司广告语,做微信商城网站建设需求 页面上有个小喇叭#xff0c;循环展示消息内容 逻辑思路 设置定时器#xff0c;修改translateX属性来实现滚动#xff0c;判断滚动位置#xff0c;修改list位置来实现无限滚动 实现效果 代码 /** Author: Do not edit* Date: 2023-09-07 11:11:45* LastEditors: …需求 页面上有个小喇叭循环展示消息内容 逻辑思路 设置定时器修改translateX属性来实现滚动判断滚动位置修改list位置来实现无限滚动 实现效果 代码 /** Author: Do not edit* Date: 2023-09-07 11:11:45* LastEditors: atwlee* LastEditTime: 2023-09-07 15:23:21* Description:* FilePath: /pan-ui/packages/Base/src/MessageScroll/index.tsx*/import { ReactNode, forwardRef, useEffect, useImperativeHandle, useRef, useState } from react; import ./index.css;export interface MessageScrollProps {messages: ReactNode[];speed?: number;gap?: number; }export interface MessageScrollRef {start: () void;pause: () void;restart: (sleep?: number) void; }const Index forwardRefMessageScrollRef, MessageScrollProps((props, ref) {const { messages, speed 20, gap 20 } props;const [messageList, setMessageList] useStateReactNode[]([]);const messageListRef useRefReactNode[]([]);const [translateX, setTranslateX] useState(0);const container useRefHTMLDivElement(null);const exceed useRef(false);const scrollX useRef(0);const run useRef(true);useEffect(() {setMessageList(messages);}, [messages]);useEffect(() {restart(0);if (container.current) {exceed.current container.current.clientWidth container.current.scrollWidth - gap;}messageListRef.current messageList;}, [messageList]);const handleMessage () {const firstChildWidth container.current?.firstElementChild?.clientWidth;if (firstChildWidth scrollX.current firstChildWidth gap) {const [first, ...rest] messageListRef.current;setMessageList([...rest, first]);}};useEffect(() {const timer setInterval(() {if (run.current exceed.current) {scrollX.current 0.5;handleMessage();setTranslateX(translateX - scrollX.current);}}, speed);return () clearInterval(timer);}, []);const restart (sleep 200, reset false) {setTranslateX(0);reset setMessageList(messages);scrollX.current 0;run.current false;const timer setTimeout(() {run.current true;clearTimeout(timer);}, sleep);};useImperativeHandle(ref, () ({start: () {run.current true;},pause: () {run.current false;},restart: (sleep) {restart(sleep, true);},}));return (div classNamerc-message-scroll-container ref{container}{messageList.map((message, index) (divkey{index}classNamerc-message-scroll-itemstyle{{ transform: translate(${translateX}px), marginRight: ${gap}px }}{message}/div))}/div); });export default Index; .rc-message-scroll-container {position: relative;display: flex;flex-wrap: nowrap;overflow: hidden; } .rc-message-scroll-container .rc-message-scroll-item{flex-shrink: 0; }FAQ 判断了内容不超出就不滚动如果内容超出了但是内容太少导致没有及时的handleMessage 没有处理这一块的逻辑。解决办法就是double一下数据
http://www.zqtcl.cn/news/541259/

相关文章:

  • 网站开发开源框架企业影视广告制作公司
  • 网站建设人员的组织音乐网站建设目标
  • 动画制作软件下载安装网站seo置顶
  • 怎么做网站推广的步骤关闭评论 WordPress
  • 合肥建站费用学生做兼职去哪个网站
  • 万户网络做网站如何做网站的企业排名
  • 天猫网站左侧菜单向右滑出的导航菜单阜阳h5网站建设公司
  • 凡科做网站的方法wordpress备份如何安装
  • 网站备案依据四川省广安建设局网站
  • 网站后台管理系统模板品牌营销和品牌推广
  • 网站建设的整个流程图wordpress标题去重
  • 网站手机版模板做拼货商城网站
  • wordpress建自己的网站吗c2c网站的特点
  • 建设网站的成本有哪些龙岩做网站哪家最好
  • wordpress 多站点 子目录安徽望江县城乡建设局官方网站
  • 电子政务网站建设的步骤一般为俱乐部logo免费设计在线生成
  • 网站建设尚品男生学计算机哪个专业最吃香
  • app制作网站收费吗重庆网站产品推广
  • 网站开发预算怎么算厦门建站比较好的公司
  • 涡阳网站优化建设工程公司企业文化
  • 曲靖市住房和城乡建设局网站罗湖区网站公司
  • 购物券网站怎么做wordpress+好用插件
  • 商务网站建设的一般流程是什么?南宁seo费用服务
  • 做企业网站需要什么seminar是什么意思
  • 如何把代码放在网站首页教程深圳建网站哪个公
  • 做的网站第二年续费多钱上传到服务器的网站打开是空白
  • 网站建设花多少钱怎样建移动网站
  • 关键词排名优化网站上海有几个区分别叫什么名字
  • php网站开发基础定制自己的软件
  • 私人装修接单网站wordpress热门文章插件