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

网站承建江西做网站优化好的

网站承建,江西做网站优化好的,豆瓣wordpress主题,广州网站订制开发前言 轮播组件是常见的一种方式#xff0c;用来展示图像、信息或者是广告。我们可以使用React来创建一个轮播组件#xff0c;并且利用其中的State和effect Hook来创建一款动态的、可以自动播放的轮播组件。 效果 轮播组件会展示一个平铺的图片列表。在图片列表下方是一组小…前言 轮播组件是常见的一种方式用来展示图像、信息或者是广告。我们可以使用React来创建一个轮播组件并且利用其中的State和effect Hook来创建一款动态的、可以自动播放的轮播组件。 效果 轮播组件会展示一个平铺的图片列表。在图片列表下方是一组小圆点每个小圆点对应一个图片。当一个新的图片显示时相对应的小圆点会高亮。组件会每隔一段时间自动切换图片并且当它切换到最后一张图片后会继续切回第一张图片。 原理分析 轮播组件的实现依赖于React的**useState和useEffect**这两个Hook。 我们首先通过**useState创建一个index变量以及一个setIndex函数。index**记录了我们当前展示图片的位置。下面我们会创建一个名为**list**的变量它会把图片数组中第一张图片复制一份添加到数组末尾。接下来我们在**useEffect中设置一个定时任务每隔2秒钟更新一次index**的值等于在每两秒钟播放下一张图片。最后我们根据**index的值来计算需要平移的比例然后定义一个transform** CSS属性此步骤定义了图片滚动所需要的动画效果。 代码实现 首先我们导入所需的模块以及定义图片数据。 import React, { useState } from react; import classnames from classnames; import ./index.less;const dataSource [{picture:https://cdn.fmlg1688.cn/build-material/3c76b0a215c64baebded1a690e1ff989.blob,title: 是怎么做出来的,},{picture:https://cdn.fmlg1688.cn/build-material/image/b3528a0b59f34e32aa4aae4652bee76f.jpeg,title: 成功案例,},{picture:https://cdn.fmlg1688.cn/build-material/3c76b0a215c64baebded1a690e1ff989.blob,title: 仿木栏杆-03,}, ];然后实现轮播组件的代码 export default function Carousel() {const [index, setIndex] useState(0);const carouselRef useRefHTMLDivElement(null);const list useMemo(() {return [...dataSource, dataSource[0]];}, [dataSource]);useEffect(() {const goNext () {setTimeout(() {if (index 1 list.length) {if (carouselRef.current?.style) {carouselRef.current.style.transform translateX(0%);}setIndex(0);} else {setIndex(index 1);if (index 1 list.length - 1) {setTimeout(() {setIndex(0);}, 300);}}// setIndex((inx) {// if (inx 1 list.length) {// return 0;// } else {// if (inx 1 list.length) {// goNext();// }// ret// });}, 2000);};goNext();}, [index]);console.log(index:, index);return (div classNamecarousel-containerdivref{carouselRef}classNamecarouselstyle{{width: ${100 * list.length}%,transform: translateX(-${(100 / list.length) * index}%),transition: 0 index ? : transform 0.3s,}}{list.map((data) {return (div classNamecarousel-itemimg src{data.picture} //div);})}/divul classNamedot{dataSource.map((data, inx) {return (liclassName{classnames(dot-item, {dot-item--active: index inx,})}/li);})}/ul/div); } export default function Carousel() {const [index, setIndex] useState(0);const carouselRef useRefHTMLDivElement(null);const list useMemo(() {return [...dataSource, dataSource[0]];}, [dataSource]);useEffect(() {const goNext () {setTimeout(() {if (index 1 list.length) {if (carouselRef.current?.style) {carouselRef.current.style.transform translateX(0%);}setIndex(0);} else {setIndex(index 1);if (index 1 list.length - 1) {setTimeout(() {setIndex(0);}, 300);}} }, 2000);};goNext();}, [index]);console.log(index:, index);return (div classNamecarousel-containerdivref{carouselRef}classNamecarouselstyle{{width: ${100 * list.length}%,transform: translateX(-${(100 / list.length) * index}%),transition: 0 index ? : transform 0.3s,}}{list.map((data) {return (div classNamecarousel-itemimg src{data.picture} //div);})}/divul classNamedot{dataSource.map((data, inx) {return (liclassName{classnames(dot-item, {dot-item--active: index inx,})}/li);})}/ul/div); } 在这个组件中 我们定义了一个React引用**carouselRef**通过这个引用我们可以获取到对应渲染的DOM对象。在每2秒钟我们通过**goNext函数来触发轮播图的切换。有一个特别的处理当轮播切换到复制的第一张图片时改变index**到0并且立即清除过渡效果使得轮播图看起来像是循环播放的。当创建轮播组件的HTML部分时我们基于**index值增加transform和transition**样式通过CSS动画实现了轮播的滚动效果。最后我们定义了一个小圆点列表它的作用是表示当前显示的是哪张图片。小圆点的数量等于图片的数量但是并不包括复制的第一张图片。哪个小圆点处于活动状态是基于**index**值确定的。 总结 以上就是通过React实现轮播图的方法。这个轮播图基于React的**useState和useEffect实现利用了transform和transition**来呈现滑动的动画效果。
http://www.yutouwan.com/news/275315/

相关文章:

  • 广州网站排名推广公司用Python做网站如何配置域名
  • 电商网站开发面试题wordpress 数据 拆分
  • 全国购物网站排名个人网站开发的背景
  • 辽阳市建设行业培训中心网站咸阳住房和城乡建设局网站
  • 网站服务器租用还是托管呢企业网站策划书
  • 徐州网站建设xzqjw云主机网站面板
  • 手机网站怎么做微信登陆6网站对图片优化
  • 做服装公司需要什么网站服务器维护要多久
  • 揭阳网站开发定制seo网络优化是做什么的
  • 设计师网络称呼无锡网站建设优化公司
  • WordPress背景图片编辑seo优化培训学校
  • 东莞企业建站申请多少钱海南省建设厅网站
  • 中国建设劳动学会监制网站wordpress搬家教程
  • 潍坊企化网站建设成都网络推广中联无限
  • 农业网站设计彩票网站制作开发
  • 网站建设教材下载给小说网站做编辑
  • 显示网站正在维护是什么情况做导购类网站
  • 怎样在网站上做营业执照公示重庆市建筑从业人员信息网
  • 学校网站建设先进个人荣誉网站开发公司怎么接单子
  • 网站推广策略的主要方式怎么自己给自己的网站做推广
  • 保洁公司 网站模板17一起广州做网站
  • 青岛网站建设价格买个域名
  • 天津网站建设案例教程手机做网站价格
  • 深圳龙岗建网站网页设计师用什么软件
  • 自建站公司网站建设行业怎么样
  • 网站建设公司对比分析报告大学生做家教比较好的网站
  • 网站建设 接单网站建设平台软件哪个好用
  • 企业网站建设运营的灵魂网站开发后怎么上线
  • 做婚礼请柬的网站有哪些济南轻电商网站建设公司
  • 文本文档做网站网站建设心得总结