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

html5网站模板广州建设网站下载

html5网站模板,广州建设网站下载,网页开发后端软件,营销策划 网站一、走马灯的作用 走马灯是一种常见的网页交互组件#xff0c;可以展示多张图片或者内容#xff0c;通过自动播放或者手动切换的方式#xff0c;让用户能够方便地浏览多张图片或者内容。 本次实现的不是轮播图而是像传送带一样的无限滚动的形式。 二、需求梳理 走马灯可设…一、走马灯的作用 走马灯是一种常见的网页交互组件可以展示多张图片或者内容通过自动播放或者手动切换的方式让用户能够方便地浏览多张图片或者内容。 本次实现的不是轮播图而是像传送带一样的无限滚动的形式。 二、需求梳理 走马灯可设置一下属性 滚动速度 滚动方向 一屏要显示项的个数 容器的宽度 要展示的数据 自定义展示项 三、实现思路 3.1 首先确定一下我们的dom元素 wraplistitem*n 最外层wrap用于限制显示区域的宽度超过宽度就隐藏。 list 用于滚动显示数据所以我们的动画加在这个元素上。 item 用于放置展示项。 3.2 实现无限滚动的动画 我们用keyframes关键帧动画来做。 但是要滚动多少距离才能实现无限滚动呢 1.计算动画滚动距离 从上面的图中我们可以看到当list的宽度wrap的宽度containerWidth)时会出现滚动后出现空白的情况。那么第二张图list的宽度wrap的两倍就能在向左滚动完list的一半后不会出现空白而且为了给人一种无限滚动的效果list的前后两部分数据要保持一致。 所以滚动的距离 展示数据的个数 * 每项的宽度而为了无限滚动效果我们还需要对原始数据进行处理。 分为以下几种情况 数据个数 一屏展示个数showNum) 此时重复两次原始数据就能得到滚动数据 数据个数 一屏展示个数 首先我们要保证没有空白那要如何填充呢只填充到showNum,行不行呢 我们可以看一下 比如说原始数据为[1,2,3]填充完再进行重复则为 [1,2,3,1,1,2,3,1]这样会出现1这一项连续出现了。 所以最好的方式是直接填充原始数据直到showNum所以最终我们得到的滚动数据是[1,2,3,1,2,3 ,1,2,3,1,2,3] 2.插入动画 因为我们的动画是根据传入的变量得来的所以不能直接写在样式文件里我们通过在useEffect里插入样式表对象的方式来实现。 四、完整代码 组件代码 import { ReactElement, useEffect } from react; import * as React from react; import ./index.less; import { ItemProps } from ./demo; interface Props {Item: (item: ItemProps) ReactElement;showNum: number;speed: number;containerWidth: number;data: Arrayany;hoverStop?: boolean;direction?: left | right; } const fillArray (arr: any[], length: number): any[] {const result: any[] [];while (result.length length) {result.push(...arr);}return result.concat(result); };function AutoplayCarousel({Item,showNum,speed,containerWidth,data,hoverStop false,direction left }: Props) {const showData fillArray(data, showNum);const length showData.length;const itemWidth containerWidth / showNum;useEffect(() {// 创建一个新的样式表对象const style document.createElement(style);// 定义样式表的内容let start 0;let end -${(itemWidth * length) / 2};if (direction right) {start end;end 0;}style.innerText keyframes templates-partner-moving {0% {transform: translateX(${start}px);}100% {transform: translateX(${end}px);}};if (hoverStop) {style.innerText .list:hover {/*鼠标经过后动画暂停*/animation-play-state: paused !important;};}// 将样式表插入到文档头部document.head.appendChild(style);// 组件卸载时清除样式表return () document.head.removeChild(style) as any;}, []);return (div style{{ width: ${containerWidth}px }} classNamewrapdivclassNameliststyle{{width: ${itemWidth * length}px,animation: templates-partner-moving ${(length / showNum / 2) * speed}s infinite linear}}{showData.map((item) (div style{{ width: ${itemWidth}px }}Item {...item} //div))}/div/div); }export default AutoplayCarousel;demo代码 import React from react; import AutoplayCarousel from ./index; const data new Array(5).fill(0).map((item, index) {return { num: index }; }); console.log(data, data); export interface ItemProps {num: number; } const itemStyle {border: 1px solid #ccc,background: #fff,height: 50px,color: red,marginRight: 15px }; function Demo() {const Item (item: ItemProps) {return div style{itemStyle}{item.num}/div;};return (AutoplayCarouselItem{Item}containerWidth{500}showNum{5}speed{8}data{data}/); }export default Demo;样式代码 * {margin: 0;padding: 0; }.wrap {overflow: hidden;.list {position: relative;top: 0px;left: 0px;height: 100%;display: flex;} }
http://www.pierceye.com/news/522882/

相关文章:

  • 马鞍山建设集团有限公司网站找工程项目上哪个平台好呢
  • 网站建设发货流程图电子商务是什么
  • 与有权重网站做友链软件开发可以做网站么
  • html网站开发代码专业的网站开发团队
  • 聚美优品的网站建设状况wordpress 微商城
  • 网络营销型网站律师做推广的网站
  • 网站建设公司排行济南网页制作设计营销
  • 网站功能建设与栏目划分wordpress 系统需求
  • 做网络推广要做网站吗wordpress中对视频排序
  • 三合一网站怎么建立如何做网站规范
  • 浙江网站改版设计公司网站建设实训目的
  • 建设网站装配式建筑楼房东莞网站建设php方案
  • 宜昌网站制作公司排名眉山招聘网站建设
  • 网站开发项目经理工资公司网站建设管理
  • 大良o2o网站建设百度手机卫士下载安装
  • 张家界市网站建设设计简单的php购物网站源码
  • 网站的流量检测怎么做禹州做网站的公司
  • 百度网站录入北京到安阳高铁
  • 去马来西亚做网站网站安卓网站开发平台
  • jsp 哪些网站利用技术搭建网站做网站代理
  • 网站建设 分类广告html做网站自适应宽度
  • 鄂州市建设局网站佰牛网站建设
  • 织梦网站上传及安装步骤农畜产品销售平台的网站建设
  • 网站续费如何做分录做交互设计的网站
  • 国家网站备案查询系统安丘网站建设多少钱
  • 长沙公司网站设计鹤壁建设网站推广公司电话
  • 电子商务网站建设与管理实务电子商务网站的构建
  • 做网站的集团用什么自己做网站
  • 买网站空间网站模块图片
  • 上海建设网站公在微信上怎么开店