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

怎么通过贷款网站找做贷款客户免费手机做网站

怎么通过贷款网站找做贷款客户,免费手机做网站,安徽工程建设造价信息网站,wordpress 文档主题前端时间在做 年报#xff0c;就不难涉及到 年报 具有的几大特性#xff1a; 1、页面滑动特效 2、文字一行一行出现特效 3、页面内动画 等等 这片文章主要展示一下 文字一行一行出现特效 代码#xff08;react 为例#xff09; 先看效果图#xff1a; 第一步#xff…前端时间在做 年报就不难涉及到 年报 具有的几大特性 1、页面滑动特效 2、文字一行一行出现特效 3、页面内动画 等等 这片文章主要展示一下 文字一行一行出现特效 代码react 为例 先看效果图 第一步分析 想要使 文字一行一行显示出来 无非就三种方式 1、使用css控制底层一个完整页面上层一个只有背景图的完整页面通过动画渐渐向下移动上层div使底层div信息逐渐展示出来以达到渐显的效果但视觉效果较差。 2、使用js控制使用js逐步增加dom节点并给dom节点添加动画效果。对于ReactVue这类框架层面应用不建议直接使用JS控制 DOM 节点增删 3、js css控制初次页面全部渲染出来并给每一行增加 id 属性但Css样式为 opacity: 0 透明渲染完成后通过js改变 css 动画 样式。本文所采用方式 第二部布局 1、想要使文字一行一行展示出来我们期望的是得到渲染数组这样才能对顺序进行控制。不同段落之间我们也期望 从上往下的段落一行一行展示出来所以我们期望得到一个二位数组like this: funfunction Text(props) {return divprops?.text/div } paragraphArrays : [[Text text第一段第一行 /,Text text第一段第二行 /,Text text第一段第三行 /,],[Text text第二段第一行 /,Text text第二段第二行 /,Text text第二段第三行 /,], ]2、不同页面的文本承载container样式可能不同所以我们期望使用者可自定义样式。 3、不同页面段落之间的样式可能不同所以我们期望使用者可自定义样式。 4、使用者可自定义行 id 这样动画组件的 props 我们就定义好了 第三部实现 1、渲染函数 js: import React, { useEffect } from react import classnames from classnames import styles from ./AnimationText.module.scss/*** description: 文字段落一行一行出现动画* param props:* paragraphArrays : [[Text text第一段第一行 /,Text text第一段第二行 /,Text text第一段第三行 /,],[Text text第二段第一行 /,Text text第二段第二行 /,Text text第二段第三行 /,], ] * paragraphClassName: 段落className * className container className * id: container id* return {*}*/function AnimationText(props) {const { paragraphArrays, paragraphClassName, className, id } props || {}return (div className{classnames(styles.container, className)} id{id || animationText} {(paragraphArrays || []).map((item, index) (div className{classnames(styles.paragraph, paragraphClassName)}{(item || []).map((component, idx) (div id{${index}-${idx}-${id || animationText}} className{styles.nodeItem} {component}/div))}/div))}/div) }export default AnimationTextcss: .paragraph {margin-bottom: 15px; }.nodeItem {opacity: 0; }2、获取 container DOM 节点 // 用于存储 存放动画的 container let element // 等同于 componentDidMount useEffect(() {element document.getElementById(id || animationText)}, [])3、获取到DOM节点后, 开始执行动画 css 动画定义 // 透明度从0 到 1动画只执行一次 .nodeItemShow {visibility: visible;animation: scan 3s ease 0s 1; }keyframes scan {0% {opacity: 0;}100% {opacity: 1;} }js: // 获取到 element 后循环 paragraphArrays 数组使用count 计数每隔 600 * count 毫秒改变当前count 行的 css 样式 useEffect(() {if (element) {let count 0for (let i 0; i paragraphArrays.length; i 1) {for (let j 0; j paragraphArrays[i].length; j 1) {count 1setTimeout(() {const ele document.getElementById(${i}-${j}-${id || animationText})ele.setAttribute(class, styles.nodeItemShow)}, 600 * count)}}} }, [element])完整代码 js: import React, { useEffect } from react import classnames from classnames import styles from ./AnimationText.module.scss/*** description: 文字段落一行一行出现动画* param props:* paragraphArrays : [[Text text第一段第一行 /,Text text第一段第二行 /,Text text第一段第三行 /,],[Text text第二段第一行 /,Text text第二段第二行 /,Text text第二段第三行 /,], ] * paragraphClassName: 段落className * className container className * id: container id* return {*}*/ function AnimationText(props) {const { paragraphArrays, paragraphClassName, className, id } props || {}let elementuseEffect(() {element document.getElementById(id || animationText)}, [id])useEffect(() {if (element) {let count 0for (let i 0; i paragraphArrays.length; i 1) {for (let j 0; j paragraphArrays[i].length; j 1) {count 1setTimeout(() {const ele document.getElementById(${i}-${j}-${id || animationText})ele.setAttribute(class, styles.nodeItemShow)}, 600 * count)}}}}, [element, id, paragraphArrays ])return (div className{classnames(styles.container, className)} id{id || animationText} {(paragraphArrays || []).map((item, index) (div className{classnames(styles.paragraph, paragraphClassName)}{(item || []).map((component, idx) (div key{${index}-${idx}-${id || animationText}} id{${index}-${idx}-${id || animationText}} className{styles.nodeItem} {component}/div))}/div))}/div) }export default AnimationTextcss: .container {width: auto; }.paragraph {margin-bottom: 15px; }.nodeItem {opacity: 0; }.nodeItemShow {visibility: visible;animation: scan 3s ease 0s 1; }keyframes scan {0% {opacity: 0;}100% {opacity: 1;} }一个简单的 文字一行一行显示出来 动画组件就实现啦
http://www.pierceye.com/news/531796/

相关文章:

  • 网站订单模板怎么可以自己做网站被百度收到
  • 网上做物理题赚钱的网站肥城住房和城乡建设局网站
  • 傻瓜式网站源码比较好的网站建设品牌升级
  • 买东西的网站德阳机械加工网
  • 企业网站建设的基本标准是广告公司运作模式
  • 做推广网站的文章电动汽车排名前十名
  • 宜州网站建设服务网页生成长图 iphone
  • 网站关键词seo费用广告设计教学大纲
  • 网站开发视频 百度云自己做网站卖东西
  • 二级网站建设费用品牌广告投放
  • 西宁做网站君博认同门户网站建设实施方案
  • 外贸公司做网站该去哪里找萝岗手机网站建设
  • 网站建设的商业目的惠州网站建设培训
  • 一个网站备案多个域名吗中国建设工程信息网官网入口
  • 广告网站设计哪家快做网站一般注册哪几类商标
  • 学网站建设有前途吗网站对话窗口怎么做
  • 云南昆明做网站wordpress备份文件
  • 连云港市网站建设汕头制作手机网站
  • 印度做网站wordpress 锁定地址
  • 做网站的服务器带宽一般多少游戏开发培训机构
  • 网站设计制作培训微信开放平台文档
  • 私人申请建设网站多少钱html如何建网站
  • 网站怎么在微博推广石家庄模板建站平台
  • 贵阳网站开发方舟网络wordpress静态化链接
  • 如何建设一个公司网站英文网站建设多少钱
  • 国外做水广告网站大全app开发公司查询
  • 苏州商城网站制作免费下载ppt模板的网站有哪些
  • 北京智能网站建设企业wordpress 找源码
  • 无锡网站维护公司wordpress 目录排序
  • 自己搭建的ftp怎么做网站装修公司展厅效果图