react页面时间轴实现_完成响应时间轴投资组合页面

react页面时间轴实现

从上一教程继续 ,让我们为我们的构建增光添彩。

正在加载图标

我们将深入研究CSS3动画,并为我们的加载图标创建一个简单的旋转动画。 我们已经在页面上有了所需的标记,因此让我们直接进入CSS。

div.loading {
    color: darken($grey, 20%);
    position: absolute;
    width: 100px;
    bottom: 15px;
    left: 50%;
    margin-left: -50px;

    img {
        vertical-align: middle;

        &.rotate {
            -webkit-animation-name: rotate;
            -ms-animation-name: rotate;
            animation-name: rotate;
            -webkit-animation-duration: 1s;
            animation-duration: 1s;
            -webkit-animation-iteration-count: infinite;
            -ms-animation-iteration-count: infinite;
            animation-iteration-count: infinite;
            -webkit-animation-timing-function: linear;
            -ms-animation-timing-function: linear;
            animation-timing-function: linear;
        }


    }
}

将此代码放在Sass文件中的Portfolio portfolio-item块之后。 首先,我们在这里为加载div本身设置一些样式。 我们绝对定位它,并通过使用margin-left来确保它居中   -50px,即元素宽度的一半。 这是为了弥补CSS从左上角定位元素的事实。

下一节将更加有趣。 正如您可能在HTML中看到的那样,我们为加载的<img>标签分配了一个rotate类,该标签将用作执行CSS动画的钩子。 这里的样式是我们动画的设置。

我们基本上是在告诉CSS我们的动画功能是什么(我们将在稍后创建),动画应运行多长时间,应运行多少次以及要使用的计时或缓动功能。 对于我们的项目,我们想要一个永不停止的顺畅的360度旋转。 上面的代码将实现这一目标。

注意:我们必须包含浏览器前缀的声明,以便没人错过-我们可以通过使用Sass mixin为我们完成繁重的工作来改进此声明。

让我们在浏览器中看一下。

好的,看起来确实不错,但是缺少一件事。 这不是动画! 现在,使用以下代码修复该问题:

@-webkit-keyframes rotate {
    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
        -webkit-transform-origin: center center;
        transform-origin: center center;
    }
}

@keyframes rotate {
    100% {
        -webkit-transform: rotate(360deg);
        -ms-transform: rotate(360deg);
        transform: rotate(360deg);
        -webkit-transform-origin: center center;
        -ms-transform-origin: center center;
        transform-origin: center center;
    }
}

这就是rotate功能。 其工作方式是通过在动画中设置关键点来更改元素。 您可以将发生的事件设置为0%,25%,50%等。 我们的动画非常简单,因此我们只需要声明100%即可声明元素必须旋转360度。 这意味着我们的元素将执行整个旋转,并从其开始处结束。 我们之前的设置可以确保它无限期地运行。 transform-origin属性告诉CSS动画的中心点在哪里。 我们可以将其设置为以左上角为中心旋转(可能看起来很有趣!),但是我们只想在此处使用元素的确切中心。 保存此文件并在浏览器中查看!

它看起来应该与上面相似,但是更加流畅和快速。

这结束了我们的“时间轴投资组合”页面,但是对于本教程而言,我们可以添加一件事。

载入内容

现在,在现实世界中,这种类型的布局/主题可能会包含某种无限滚动功能,当您向下滚动页面时,其中会显示更多项目,从而使您不必单击即可浏览页面。

我们可以使用几行jQuery在此模拟这种行为。 打开app.js并从添加以下内容开始,在上面我们写菜单标题单击处理程序的位置上方。

var visibleHeight = $(document).height() - $(window).height();
var items;

首先,我们需要声明两个变量,以便以后使用。 第二个纯粹是声明,稍后将为其赋值。 第一个, visibleHeight ,获取window高度,并从整个document高度中减去该高度。 这将使我们拥有用户浏览器中当前可见区域的高度。

storeElements();

$(window).on('resize', function(e) {
    updateHeight();
});

$(window).on('scroll', function(e) {
    loadContent();
});

接下来,添加上面的代码段。 您将看到对尚不存在的函数的一些函数调用,这很好,因为我们接下来将创建它们。

function storeElements() {
    items = $('.portfolio-item:lt(3)').clone();
    //Strip the first class from selection
    items.removeClass('first');
}

storeElements函数用作填充items一种方式   带有某些DOM元素的变量。 在我们的案例中,我们想获取前三个portfolio-items 。 jQuery的lt()允许我们有选择地选择我们想要的元素。 一旦有了选择,就应该clone()   它们,所以我们不使用实际元素,而是使用副本。 最后一步是删除第first类(如果存在的话),因为列表中的第一个没有新元素。

function updateHeight() {
    visibleHeight = $(document).height() - $(window).height();
}

将此函数放在storeElements上方。 这可能是最简单的功能,因为它只做我们document ready所做的事情。 我使用函数来执行此操作的原因是为了使其可重用。

现在我们进入执行工作的功能...

function loadContent() {

    if($(window).scrollTop() >= visibleHeight) {

        $(window).unbind('scroll');
        
        var loadingWrap = $('.loading-wrap');
        
        loadingWrap.fadeIn(function() {
            setTimeout(function() {
                loadingWrap.before(items);
                loadingWrap.hide(function() {
                    updateHeight();
                    storeElements();
                    $(window).on('scroll', function() { loadContent(); });
                });
            }, 500);
        });

    }
}

好的,一步一步地了解我们在这里所做的事情:

  • 检查滚动位置是否大于(滚动过去)或等于(当前位于) visibleHeight 。
  • 如果是这样,请从window删除滚动事件处理程序,以便我们处理内容。
  • 缓存loading-wrap ,以备后用。
  • 淡入淡入loading-wrap ,一旦淡入淡出完成...
  • ...设置一个小的Timeout以模拟“加载”内容。
  • 在loading-wrap之前,请附加我们克隆的items 。 这将很好地插入加载图标和当前portfolio-items 。
  • 隐藏loading-wrap并隐藏一次updateHeight和storeElements   然后将滚动事件重新附加到window并附带说明以再次运行此功能。

! 这似乎很多,因此如果需要,请再次运行。 有一件事情你可能会注意到,如果你是老鹰眼睛,是我们在衰落loading-wrap这实际上是已经在我们HTML可见。 通过向该元素添加内联样式来解决此问题。

<div class="portfolio-item group loading-wrap" style="display:none;">

因此,如果我们现在保存文件并在浏览器中查看我们的工作,则滚动到页面底部时,应该会看到更多“加载”内容。 等等,我们还需要添加另一件事...

$('.menus h3').on('click', function(e) {
    $(this).next('ul').toggleClass('open');
    updateHeight();
    e.preventDefault(); return false;
});

在我们updateHeight()开始创建的h3 click处理程序内,我们必须添加对updateHeight()的调用,这样,当我们单击以打开菜单时,变量将被更新以反映文档高度的变化。 否则,如果您在移动设备上打开菜单,则“加载”功能将被破坏,因为visibleHeight变量将不正确。

结论

我们到了尽头! 我们可能会整理刚刚编写JavaScript,在现实世界中,它可能会变成AJAX调用之类的东西。

希望您在学习本教程后学到了一些不同的技术。 构建过程很有趣,我很高兴与您分享将这个非常好的设计变为现实的过程。 我相信有很多方法可以改善此问题,因此,如果您有任何建议,请在评论中让我知道!

翻译自: https://webdesign.tutsplus.com/tutorials/finishing-the-responsive-timeline-portfolio-page--cms-19873

react页面时间轴实现

前端工程师思维体检表:从JS引擎到WebGPU的深度能力图谱 前端开发已超越HTML/CSS/JS基础,演进为涵盖JS引擎运行机制、浏览器渲染管线、网络协议栈、现代框架响应式原理及前沿WebGPU/WebAssembly落地能力的综合工程体系。理解V8隐藏类与内联缓存、CSS重排重绘的底层触发条件、HTTP/3在短连接场景下的真实性能边界、Proxy内存泄漏风险、以及WASM移植的成本效益临界点,是构建高性能、可维护、可演进前端系统的核心前提。这些能力共同支撑着中后台系统优化、实时协作应用、数字孪生可视化等复杂业务场景的稳定交付。 阅读详情

相关推荐

原型设计工具选型指南:从Figma到Axure,8款主流工具深度解析

原型设计是产品从概念到落地的关键环节,其核心在于通过可视化模型快速验证想法、沟通需求并指导开发。现代原型设计工具已从单一的绘图软件,演变为集快速构思、交互演示、团队协作与设计系统管理于一体的综合工作平台。这类工具通过支持实时协作、组件化设计以及自动生成标注与代码,极大地提升了产品研发效率,降低了设计与开发之间的沟通成本。在UI/UX设计、产品管理和敏捷开发等领域,选择合适的原型工具已成为构建高效工作流的基础。本文聚焦于Figma、Sketch等主流工具,深入剖析其核心功能与适用场景,旨在帮助团队根据协作需求

weixin_30732487的博客 416

React 时间轴

https://github.com/stephane-monnot/react-vertical-timeline 基本上手就能用 不过里面的 icon 并没有给出详细的说明 icon 用这个就好了 https://github.com/react-icons/react-icons 这个具体的库在这 https://react-icons.netlify.com/#/ 很全 然后里面的icon...

more time 5885

GPT-5.5 Instant:程序员工作流操作系统的范式革命

编程工作流本质上是一系列跨工具、跨上下文、跨时间的原子操作组合;其核心瓶颈并非算力或语法,而是频繁的上下文切换与状态丢失。GPT-5.5 Instant 通过长程推理锚定、工具链原生嵌入和因果建模三大能力,首次实现对开发全链路(编码、调试、测试、部署、归档)的意图驱动闭环执行。它不再辅助写代码,而是重构‘写代码’的定义——将工程师从操作员升维为指挥官。这一演进标志着AI从Copilot走向Workflow OS,正深刻重塑软件工程实践范式。

weixin_34095889的博客 434

React实现一个时间轴组件

小白练手,进行了简单的组件封装,组合使用等。

大大 1218

Kimi K2.5工程白皮书:Token效率、Delta Attention与智能体群的系统级实现

大模型工程化正从‘堆参数’转向‘精系统’——Token效率作为Scaling Law落地的第一性原理,决定了训练成本、收敛稳定性与数据天花板下的真实智能上限;而长上下文处理已突破线性近似局限,演进为支持分层记忆调度的Delta Attention架构;在此基础上,智能体群(Agent Swarms)不再是个体叠加,而是具备Orchestrator元认知、Worker池化与共享状态注册的分布式智能操作系统。本文聚焦Kimi K2.5三大核心工程突破,结合Muon优化器、QK-Clip限压机制与1:3混合注意力

weixin_33912246的博客 347

css+vue绘制蛇形时间轴曲线

css+vue绘制蛇形时间轴曲线

淘淘小窝 6072

react创建组件_如何使用React创建时间轴组件

react创建组件These days I’ve been working on a new page for my website. I wanted to have a Timeline to showcase some of my professional accomplishments over the years. 这些天来,我一直在为网站创建新页面。 我希望有一个时间表来展示我多年来的...

1434

纯CSS3蛇形时间轴特效代码.rar

纯CSS3蛇形时间轴特效代码,CSS练习,适用浏览器:360、FireFox、Chrome、Opera、傲游、搜狗、世界之窗. 不支持Safari、IE8及以下浏览器。

用快马AI平台实现Idea2025:5步打造未来科技展示系统

选择React+Node.js组合时,平台已经预置了完整的开发环境。特别方便的是MongoDB连接配置,平台提供了开箱即用的数据库服务,省去了本地安装和云数据库申请的繁琐流程。最后点击部署按钮时,原本担心需要配置Nginx和SSL证书,结果平台自动完成了所有发布流程。下面分享我用平台开发科技展示系统的全过程,核心功能包括创意收集、AI辅助完善和三维可视化,整个过程就像搭积木一样顺畅。我实测从零开始到完整项目上线,只用了不到周末两天时间,比传统开发方式节省至少70%的环境配置时间。

EmeraldEagle36的博客 671

react-horizontal-timeline:React的水平时间线组件

React计划 一种为组件提供一些凉爽功能的React组件。 入门 计划组件基于HTML网格系统。 要将项目添加到计划中,只需要将所需的项目拖放到时间轴组件中。 拖放动作由react-DnD处理。 您可以将customItemType传递给ElementWrapper组件,并将customInnerElementType传递给时间轴组件,以使用自己的react组件自定义计划。 没有JQuery。 正在安装 一系列循序渐进的示例,告诉您如何运行开发环境 说出步骤将是什么 npm install --save react-planning 用法 import { Planner } from 'react-planning'; 例子 有关完整的工作示例,请参见此处的完整存储库: : import React , { useState , useEffect } from 'rea

在React中创建基于时间轴和回放的动画

在React中创建基于时间轴和回放的动画

res-downloader 资源嗅探教程:十分钟把视频号、抖音、小红书视频完整存到本地

res-downloader 是一个基于 Go 开发的**跨平台资源嗅探下载器**:它把本机变成一个本地代理,替你截获视频号、小程序、抖音、快手、小红书、QQ 音乐、酷狗等平台上的视频、音频、图片、m3u8 分片和直播流,再整理成一份干净的列表,**不用抓包、不用装证书插件、不用研究协议**,看到什么就能下载什么。 ## 一个群里的求助,戳中了大多数人的痛点 上周有个做知识付费的朋友在群里发愁

gitblog_00526的博客 373

新手也能搞定的ANPC三电平逆变器Simulink仿真:从SPWM调制到开关损耗优化

本文详细介绍了如何在Simulink中搭建ANPC三电平逆变器仿真模型,从SPWM调制基础到开关损耗优化技巧。通过分层设计思路和实用代码示例,帮助新手快速掌握ANPC拓扑的核心功能,包括中点平衡控制和性能指标分析,为电力电子系统设计提供实践指导。

weixin_30335575的博客 408

低代码数据可视化终极指南:5步掌握拖拽式大屏搭建技术 [特殊字符]

在当今数字化转型浪潮中,**低代码数据可视化**已成为企业提升决策效率和业务洞察力的关键利器。通过**拖拽式大屏搭建技术**,即使是零基础的用户也能快速创建专业级的数据看板,实现数据的直观呈现和实时监控。本文将深度剖析低代码平台中的数据可视化技术,带您了解如何利用可视化工具快速构建企业级数据大屏。 ## 什么是拖拽式数据可视化大屏? 🤔 拖拽式数据可视化大屏是一种**无需编写复杂代码**即可

gitblog_00481的博客 418

基于Ansys Fluent和Mechanical的血管稳态流固耦合模型

流固耦合模型在医学中也会被用到,本次小编为大家带来针对人造血管内血液流动的仿真实例。 在开物云平台上找到Workbench 点击进入:https://cloud.yuansuan.cn/?user_source=community 在左侧的Toolbox中找到对应的模块:Fluid Flow(Fluent)和Static Structure 双击“Geometry”,进入建模功能 文件-打开-找到保存的模型文件 退回到主界面,在fluid flow(Fluent)中找到mesh

huasheng233的博客 3910

活用QueryWrapper与@Select注解,构建MybatisPlus动态多表查询方案

本文深入探讨了如何结合MybatisPlus的QueryWrapper与@Select注解,构建高效灵活的动态多表关联查询方案。通过解析${ew.customSqlSegment}占位符机制,并设计通用的Service层封装,解决了复杂条件下多表查询的SQL拼接难题,显著提升了后台管理系统列表查询的开发效率与可维护性。

weixin_29291069的博客 271

unify v2.5主题

超级销售优惠-延长许可证的60%折扣!unify是一个难以置信的美丽和完全响应引导4模板任何类型的创意专业人士,初创公司和已建立的业务。它允许你建立任何规模的高质量的网络产品,由于大量的250 +短页包括超过1750可重用UI组件,在那里他们可以很容易地使用。统一2节省了开发时间和成本更低的QA和更多的结果。通过统一2,以最小的努力获得最大的生产力,并通过使用广泛的可重用组件来创建健壮的无限产品。...

GaiMingZhong的博客 605

基于NXP1778的CAN自动波特率检测

一、概念 NXP1778芯片内部自带一个CAN控制器。CAN模块由两部分组成:控制器和验收滤波器。所有的寄存器和RAM都以32位字宽度来访问。 CAN自动波特率检测主要用于以一种CAN的转换的产品中。产品中CAN部分的波特率以前都是通过网页中修改然后配置下去的,依据实际情况的考虑,如果CAN部分的波特率能够根据客户设备的改变而自动改变,将会增加其灵活性。   二、原理 根据CAN控制器的

菜鸟的痕迹专栏 5271

基于HarmonyOS API 24实战解析电影收藏管理@ObjectLink 则用于子组件中接收一个 @Observed 对象的引用,使得子组件能够对该对象的属性变化做出响应式更新

在移动互联网与智能穿戴设备高度普及的今天,"习惯养成"已经从一个模糊的自我管理理念,演变为一个可量化、可追踪、可视化的数字化产品赛道。越来越多的人希望借助手中的智能终端,把"早起、冥想、阅读、运动"这些抽象的自律行为,转化为一条条清晰的数据曲线和一张张可触摸的打卡卡片。而鸿蒙生态(HarmonyOS)凭借其跨设备协同、分布式软总线以及声明式 UI 开发框架 ArkUI,为这类注重"轻量化交互 + 即时反馈"的生活方式类应用提供了极为理想的生长土壤。本应用正是一款面向"晨间场景"深度打磨的习惯追踪工具。它聚焦

2301_79516720的博客 164

OpenFOAM收敛问题排查指南:从参数设置到网格优化

本文系统性地介绍了OpenFOAM计算中收敛问题的排查方法。从理解收敛本质出发,详细讲解了如何通过调优求解控制参数(如松弛因子、离散格式)、合理设置时间步长与耦合算法,以及优化网格质量来解决发散难题。文章提供了从软件设置到硬件网格的完整排查路径,帮助用户实现稳定高效的计算流体力学模拟。

fern8的博客 792

无人飞行器和车辆的协同配送物资问题——附带MATLAB代码

通过建立城市地图、生成物资点和配送任务、路径规划、协同调度以及仿真和评估等步骤,可以有效地解决物资配送的优化问题。通过建立城市地图、生成物资点和配送任务、路径规划、协同调度以及仿真和评估等步骤,可以有效地解决物资配送的优化问题。我们的目标是最小化物资配送的总时间,同时确保每个物资点都被正确配送的无人飞行器或车辆所访问。我们的目标是最小化物资配送的总时间,同时确保每个物资点都被正确配送的无人飞行器或车辆所访问。我们首先需要建立一个城市地图,包括物资点、无人飞行器的起始点和车辆的起始点。

CyberJolt的博客 950

Mac Mouse Fix:将普通鼠标打造成专业网页开发工具

你是否曾在浏览复杂网页时,手指在滚轮上反复滑动却始终找不到目标内容?或是面对密密麻麻的代码行,需要频繁切换键盘快捷键来完成简单的导航操作?对于网页开发者和重度浏览器用户来说,鼠标不仅是点击工具,更是工作效率的关键。Mac Mouse Fix 这款开源工具通过深度定制鼠标行为,将普通鼠标转化为专业级网页开发助手,让你在浏览、调试、开发网页时获得前所未有的流畅体验。 ## 痛点识别:为什么网页开发者

gitblog_00859的博客 411

自私兽群优化器(SHO)详解:从生物本能到智能优化

自私兽群优化器(SHO)是一种受动物群体自私行为启发的智能优化算法。该算法模拟动物在捕食威胁下的两种行为:聚集行为(全局搜索)和自私行为(局部搜索),将优化问题的解空间映射为生存环境,候选解视为猎物个体。SHO通过安全性评估将猎物分为安全、危险和高危三类,分别采用不同的位置更新策略,并引入捕食者角色增加选择压力。相比传统优化算法,SHO具有无需梯度信息、自适应平衡探索与开发、参数简单等优势,特别适合高维复杂和多模态优化问题。算法通过马尔可夫链理论保证收敛性,已在工程设计和数据挖掘等领域展现出良好性能。

qq_42212808的博客 196

高效网站资源管理:分类体系与评价标准实践

在信息爆炸时代,网站资源管理成为提升工作效率的关键技术。通过建立科学的分类体系和评价标准,可以有效组织海量网络资源。分类体系通常按功能用途或行业领域划分,而评价标准则涵盖内容质量、用户体验和技术指标三个维度。在实际应用中,结合自动化采集工具和信息管理平台,可以实现网站资源的高效管理。这种技术方案特别适合需要处理大量网络资源的开发者、研究人员和内容管理者,能够显著提升信息检索效率和工作生产力。通过合理运用爬虫工具和元数据标准化,还能实现网站资源的智能化推荐和个性化展示。

weixin_30896825的博客 401

【DeepSeek-R1 】分词系统架构解析

DeepSeek-R1 分词系统解析 DeepSeek-R1 采用 SentencePiece Unigram 算法,通过统计语言模型实现高效子词分词。其核心优势包括: 算法对比:相比 BPE/WordPiece,Unigram 基于概率模型,支持多语言,自动回退字符级处理。 特性优化:智能空格处理、数字分桶、多语言统一支持,并采用前缀树索引和 SIMD 并行加速,编码速度达 12,458 tok/s。

赶紧的博客 429

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

kvstudio:基于数据库思维的创意资产管理平台设计与实现

在数字内容创作领域,高效管理海量的图片、视频、设计源文件等非结构化创意资产是开发者与设计师面临的普遍挑战。传统文件系统基于路径和文件名的管理模式,在元数据管理、快速预览和团队协作方面存在固有缺陷。其核心原理在于引入数据库思维,将每个创意文件视为拥有丰富属性的数据对象,通过构建可高效查询的素材库来破解传统范式。这一理念的技术价值在于,它能够将软件工程中成熟的项目管理、版本控制与高效查询能力,无缝融入创意工作流程。具体应用时,平台通过集成智能元数据提取、极速预览渲染引擎和强大的查询语言,实现对素材的以内容为中心

靓靓软件工作室 428

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: sass 引入sass_Web设计人员的SASS和指南针:滑块
下一篇: sass命名变量_快速提示:模块化命名SASS变量
daique1908
博客等级 码龄10年 29粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值