若隐若现的芯片

news2024/11/17 11:06:32

先看效果:
在这里插入图片描述
再看代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>若隐若现的芯片</title>
    <script src="https://unpkg.co/gsap@3/dist/gsap.min.js"></script>
    <style>
        body {
            background-color: #000000;
            overflow: hidden;
            text-align:center;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        body,
        html {
            height: 100%;
            width: 100%;
            margin: 0;
            padding: 0;
        }

        svg {
            width: 100%;
            height: 100%;
            visibility: hidden;

        }

        .ell, #ai {
            fill: none;
        }
    </style>
</head>
<body>
<svg id="mainSVG" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 600">
    <defs>

        <linearGradient id="aiGrad" x1="513.98" y1="290" x2="479.72" y2="320" gradientUnits="userSpaceOnUse">
            <stop offset="0" stop-color="#000" stop-opacity="0" />
            <stop offset=".15" stop-color="#EF476F" />
            <stop offset=".4" stop-color="#359eee" />
            <stop offset=".6" stop-color="#03cea4" />
            <stop offset=".78" stop-color="#FFC43D" />
            <stop offset="1" stop-color="#000" stop-opacity="0" />
        </linearGradient>

    </defs>

    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <ellipse class="ell" cx="400" cy="300" rx="80" ry="80" />
    <path id="ai" opacity=0.85 d="m417.17,323.85h-34.34c-3.69,0-6.67-2.99-6.67-6.67v-34.34c0-3.69,2.99-6.67,6.67-6.67h34.34c3.69,0,6.67,2.99,6.67,6.67v34.34c0,3.69-2.99,6.67-6.67,6.67Zm-5.25-12.92v-21.85c0-.55-.45-1-1-1h-21.85c-.55,0-1,.45-1,1v21.85c0,.55.45,1,1,1h21.85c.55,0,1-.45,1-1Zm23.08-16.29h-11.15m-47.69,0h-11.15m70,10.73h-11.15m-47.69,0h-11.15m40.37,29.63v-11.15m0-47.69v-11.15m-10.73,70v-11.15m0-47.69v-11.15" stroke="url(#aiGrad)" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" />
</svg>
</body>
<script>
    gsap.config({trialWarn: false});
    let select = s => document.querySelector(s),
        toArray = s => gsap.utils.toArray(s),
        mainSVG = select('#mainSVG'),
        allEll = toArray('.ell'),
        colorArr = ['#359EEE', '#FFC43D','#EF476F','#03CEA4']

    let colorInterp = gsap.utils.interpolate(colorArr);

    gsap.set(mainSVG, {
        visibility: 'visible'
    })

    function animate (el, count) {
        let tl = gsap.timeline({
            defaults: {
                ease: 'sine.inOut'
            },
            repeat: -1
        });
        gsap.set(el, {
            opacity:1- count/(allEll.length),
            stroke: colorInterp(count/(allEll.length))
        })

        tl.to(el, {
            attr: {
                ry: `-=${count*2.3}`,
                rx: `+=${count*1.4}`
            },
            ease: 'sine.in'
        })
            .to(el, {
                attr: {
                    ry: `+=${count*2.3}`,
                    rx: `-=${count*1.4}`
                },
                ease: 'sine'
            })
            .to(el, {
                duration: 1,
                rotation: -180,
                transformOrigin: '50% 50%'
            }, 0).timeScale(0.5)
    }
    allEll.forEach((c, i) => {
        gsap.delayedCall(i/(allEll.length-1), animate, [c, i+1])
    })
    gsap.to('#aiGrad', {
        duration: 4,
        delay: 0.75,
        attr: {
            x1: '-=300',
            x2: '-=300'
        },
        scale: 1.2,
        transformOrigin: '50% 50%',
        repeat: -1,
        ease: 'none'
    })
    gsap.to('#ai', {
        duration: 1,
        scale: 1.1,
        transformOrigin: '50% 50%',
        repeat: -1,
        yoyo: true,
        ease: 'sine.inOut'
    })

</script>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/700386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HBase(5):导入测试数据集

1 需求 将ORDER_INFO.txt 中的HBase数据集&#xff0c;我们需要将这些指令放到HBase中执行&#xff0c;将数据导入到HBase中。 可以看到这些都是一堆的put语句。那么如何才能将这些语句全部执行呢&#xff1f; 2 执行command文件 2.1 上传command文件 将该数据集文件上传到指…

单点登录原理

单点登录原理 一、什么是单点登录 单点登录英文全称Single Sign On&#xff0c;简称SSO。指在多系统应用群中登录一个系统&#xff0c;便可在其他所有系统中得到授权而无需再次登录&#xff0c;包括单点登录与单点注销两部分。 二、为什么需要单点登录 在一些子系统用户信息…

初识Go语言25-数据结构与算法【堆、Trie树、用go中的list与map实现LRU算法、用go语言中的map和堆实现超时缓存】

文章目录 堆Trie树练习-用go中的list与map实现LRU算法练习-用go语言中的map和堆实现超时缓存 堆 堆是一棵二叉树。大根堆即任意节点的值都大于等于其子节点。反之为小根堆。   用数组来表示堆&#xff0c;下标为 i 的结点的父结点下标为(i-1)/2&#xff0c;其左右子结点分别为…

Python图像锐化及边缘检测(Roberts、Prewitt、Sobel、Lapllacian、Canny、LOG)

目录 图像锐化概述 算法方法介绍 代码实现 效果展示 图像锐化概述 图像锐化(image sharpening)是补偿图像的轮廓&#xff0c;增强图像的边缘及灰度跳变的部分&#xff0c;使图像变得清晰&#xff0c;分为空间域处理和频域处理两类。图像锐化是为了突出图像上地物的边缘、轮…

Docker|kubernetes|本地镜像批量推送到Harbor私有仓库的脚本

前言&#xff1a; 可能有测试环境&#xff0c;而测试环境下有N多的镜像&#xff0c;需要批量导入到自己搭建的Harbor私有仓库内&#xff0c;一般涉及到批量的操作&#xff0c;自然还是使用脚本比较方便。 本文将介绍如何把某个服务器的本地镜像 推送到带有安全证书的私有Harb…

【P61】JMeter JDBC Connection Configuration

文章目录 一、JDBC Connection Configuration 参数说明二、准备工作 一、JDBC Connection Configuration 参数说明 可以给数据源配置不同的连接池&#xff0c;供后续 JDBC 采样器使用&#xff1b;使用前请将对应的数据库驱动复制到 $JMETER_HOME/lib/ 或者 $JMETER_HOME/lible…

使用注解开发

使用注解开发 为了方便查看测试结果以及方便调试&#xff0c;先熟悉和配置日志。 日志 日志工厂 如果一个数据库操作出现了异常、需要进行排错&#xff0c;可以通过查看日志的方式实现。 Mybatis内置的日志工厂能够提供日志功能&#xff0c;具体的日志实现有以下几种&#xff…

基于Java+Vue前后端分离“魅力”繁峙宣传网站设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

国产MCU-CW32F030开发学习-ST7735 LCD模块

国产MCU-CW32F030开发学习-ST7735 LCD模块 硬件平台 CW32_48F大学计划板CW32_IOT_EVA物联网开发评估套件0.96 IIC oled模块 ST7735 LCD模块 硬件接口使用的 2.54mm 间距的排针接口&#xff0c;这使用杜邦线进行连接. ST7735参数供电电压3.3~5.5V驱动ICST7735分辨率128x1…

基于antdv封装的特殊复杂表格,带通行描述信息、可展示通行的单元格信息、可跨页选择数据功能、分页功能、可编辑单元格功能

基于antdv封装的特殊复杂表格&#xff0c;带通行描述信息 主要功能&#xff1a; 可展示通行的单元格信息可跨页选择数据功能表单插槽、合计插槽、操作按钮区插槽分页功能接口内请求api可编辑单元格表格组件暴漏出的方法&#xff1a;查询、获取选中数据、接口返回数据、当前表…

消防应急照明和疏散指示系统手动控制的设计与应用

摘要&#xff1a;针对非集中控制型消防应急照明和疏散指示系统在火灾确认后如何手动控制系统的应急启动存在的实际问题&#xff1a;在哪里手动控制&#xff1f;由谁来手动控制&#xff1f;什么时候能够手动控制&#xff1f;提出 3 种手动控制应急启动系统的方案&#xff1a;① …

Fluttter的ClipRRect控件

ClipRRect简介 ClipRRect&#xff08;Rounded Rectangle Clip&#xff09;是Flutter中的一个控件&#xff0c;用于将其子控件剪裁为圆角矩形形状。 使用场景 ClipRRect通常在需要给子控件添加圆角效果时使用。它可以用于创建圆角图片、圆角容器等各种UI元素。 主要属性 bo…

uniapp 开发小程序之实现不同身份展示不同的 tabbar(底部导航栏),附带相关问题解答

效果展示&#xff1a; 引言 在开发过程中逐渐意识到uniapp原生的tabbar可能不能满足开发要求&#xff0c;通过浏览博客才选择使用uView的Tabbar 底部导航栏来实现&#xff0c;我选择用的是2X版本 安装 我是使用Hbuilder插件的方式引入的组件库&#xff0c;安装配置可以看这篇…

CVE-2023-34541 LangChain 任意命令执行

漏洞简介 LangChain是一个用于开发由语言模型驱动的应用程序的框架。 在LangChain受影响版本中&#xff0c;由于load_prompt函数加载提示文件时未对加载内容进行安全过滤&#xff0c;攻击者可通过构造包含恶意命令的提示文件&#xff0c;诱导用户加载该文件&#xff0c;即可造成…

单片机学习 14-DS18B20温度传感器实验

DS18B20 温度传感器实验 ​ 本次实验我们来学习精度较高的外部 DS18B20 数字温度传感器&#xff0c;由于此传感器是单总线接口&#xff0c;所以需要使用 51 单片机的一个 IO 口模拟单总线时序与 DS18B20 通信&#xff0c;将检测的环境温度读取出来。开发板上集成了 1 个 DS18B…

createdTime(new Date()) 数据库时间比实际多八小时

本来是createdTime&#xff08;new Date&#xff08;&#xff09;&#xff09;&#xff0c;一次生成两条数据 一直正常&#xff0c;今天却多八小时 一开始往new Date&#xff08;&#xff09;差八个小时的问题上找&#xff0c; 网上说要 在apprication.yml文件中配置一下数据…

大佬详细讲解:银行核心项目之测试阶段

最近有小伙伴留言说「想了解核心系统建设中&#xff0c;冒烟、SIT、UAT、回归测试的重点&#xff0c;如何设计测试案例&#xff0c;或相关的资料推荐等」。 这个话题很笼统&#xff0c;测试这一块儿除了业务测试&#xff0c;还有性能测试、安全测试等&#xff1b;以及不同的角…

解决pyecharts图表在jupyter notebook无法显示的问题

在jupyter notebook尝试制作pyecharts图表&#xff0c;遇到无法显示的问题&#xff0c;网上查到的结果有各种不同原因&#xff0c;此处一一罗列&#xff0c;便于大家排查并彻底解决问题。 情况1&#xff1a;图表完全无法显示 解决方案&#xff1a;参考此文档 注&#xff1a;…

web自动化测试——xpath和css语法详解(五)

目录 1.css选择器 1.1什么是css选择器&#xff1f; 1.2css选择器语法 2.xpath 1.什么是xpath&#xff1f; 2.什么是XML? 3.XML与HTML 4.节点的概念 5.XPath &#x1f381;更多干货 完整版文档下载方式&#xff1a; 1.css选择器 1.1什么是css选择器&#xff1…

SmaAt-UNet github

来源 SmaAt-UNet github SmaAt-UNet&#xff1a; 使用小型关注网结构的降水预报 论文链接 安装依赖 这个项目使用poetry作为依赖性管理。因此&#xff0c;安装所需的依赖项就像这样简单&#xff1a; conda create --name smaat-unet python3.9 conda activate smaat-unet p…