web前端之3D标签动画、指定范围的随机数、动态设置css变量、文档片段对象、反向动画

MENU

  • 效果图
  • html
  • JavaScript
  • style


效果图

animation3D1


animation3D2


html

<div class="container"></div>

JavaScript

// 祝词
var words = [
    '健康码常绿',
    '股票飙红',
    '生意兴隆',
    '财源广进',
    '心想事成',
    '永远十八',
    '身体健康',
    '大富大贵',
    '大吉大利',
    '万事如意',
    '美梦成真',
    '吉祥如意',
    '鸿运当头',
    '五福临门',
    '吉星高照',
    '好运连连',
    '八面春风',
    '百事亨通',
    '万事大吉',
    '喜气洋洋',
    '岁岁今日',
    '年年今朝',
    '和气吉祥',
    '百事顺遂',
    '福星高照',
    '前途光明',
    '喜上眉梢',
    '荣华富贵',
    '家庭和睦',
    '爱情事业双丰收',
    '工作顺利',
    '百年好合',
    '龙马精神',
    '出入平安',
    '前程万里',
    '年年有余',
    '万事胜意',
    '福如东海',
    '寿比南山',
    '学业有成',
    '大展宏图',
    '顺风顺水',
    '事业辉煌',
    '生意红火',
    '吉时吉日疾如风',
    '丰年丰月如风增',
    '增福增财增长寿',
    '寿山寿海寿长生',
    '生财生利生贵子',
    '子孝孙贤代代荣',
    '荣华富贵年年有',
    '有钱有势有前程'
];

// 生成指定范围随机数(保留小数点后两位)
function randomNum(min, max) {
    var num = (Math.random() * (max - min + 1) + min).toFixed(2);
    return num;
}

// 初始函数
function init() {
    var container = document.querySelector('.container');
    var f = document.createDocumentFragment(); //创建文档片段对象

    words.forEach(w => {
        var word_box = document.createElement('div');
        var word = document.createElement('div');

        word.innerText = w;
        word.classList.add('word');

        // 随机生成色相值(0为红色、120为绿色、240为蓝色、360为红色)
        var hue = randomNum(0, 240);
        word.style.color = 'hsl(' + hue + ',100%,65%)';

        word_box.classList.add('word-box');
        // 生成随机数值,并赋值给自定义属性
        word_box.style.setProperty('--margin-top', randomNum(-40, 20) + 'vh');
        word_box.style.setProperty('--margin-left', randomNum(6, 35) + 'vw');
        word_box.style.setProperty('--animation-duration', randomNum(8, 20) + 's');
        word_box.style.setProperty('--animation-delay', randomNum(-20, 0) + 's');

        word_box.appendChild(word);
        f.appendChild(word_box);
    })
    container.appendChild(f);
}

// 绑定加载事件
window.addEventListener('load', init);

style

* {
    margin: 0;
    padding: 0;
}

:root {
    /* 自定义属性,这几个属性等会是通过js随机生成,通过var函数可对其调用 */
    /* 上外边距 */
    --margin-top: 0;
    /* 左外边距 */
    --margin-left: 0;
    /* 动画时长 */
    --animation-duration: 0s;
    /* 动画延迟时间 */
    --animation-delay: 0s;
}

body {
    /* 100%窗口高度 */
    height: 100vh;
    /* 弹性布局 居中显示 */
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #111;
    /* 溢出隐藏 */
    overflow: hidden;
    /* 设置视距 */
    perspective: 1300px;
}

div {
    /* 所有div默认开启3D属性 */
    transform-style: preserve-3d;
}

.word-box,
.word-box .word {
    position: absolute;
    /* 执行动画:动画名 时长 线性的 无限次播放 */
    animation: rotY 0s linear infinite;
    /* 设置动画时长 */
    animation-duration: var(--animation-duration);
    /* 设置动画延迟 */
    animation-delay: var(--animation-delay);
}

.word-box {
    margin-top: var(--margin-top);
}

.word-box .word {
    margin-left: var(--margin-left);
}

.word-box .word {
    /* 反向动画 */
    animation-direction: reverse;
}


/* 定义动画 */

@keyframes rotY {
    to {
        /* 1turn表示一圈 */
        transform: rotateY(1turn);
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp的配置文件、入口文件、主组件、页面管理部分

pages.json 配置文件&#xff0c;全局页面路径配置&#xff0c;应用的状态栏、导航条、标题、窗口背景色设置等 main.js 入口文件&#xff0c;主要作用是初始化vue实例、定义全局组件、使用需要的插件如 vuex&#xff0c;注意uniapp无法使用vue-router&#xff0c;路由须在pag…

每日一练:LeeCode-200、岛屿数量【DFS递归+BFS队列】

给你一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外&#xff0c;你可以假设该网格的四条边…

生物信息—数据库

文章目录 核酸数据库1 一级核酸数据库&#xff1a;GenBank1.1 原核生物核酸序列1.2 真核生物成熟mRNA1.3 真核生物DNA序列 2 一级核酸数据库&#xff1a;基因组数据库&#xff1a;Ensemble3 一级核酸数据库&#xff1a;微生物宏基因组数据库&#xff1a;JCVI4 二级核酸数据库 蛋…

蓝桥杯练习07小兔子爬楼梯

小兔子爬楼梯 介绍 小兔子想去月球上旅行&#xff0c;假设小兔子拥有一个阶梯子&#xff0c;当你爬完层就可以到达月球&#xff0c;小兔子每次可以跳1或者2个台阶&#xff0c;小兔子有多少种跳法可以到达月球呢&#xff1f; 给定n是一个正整数&#xff0c;代表梯子的阶数&…

数据可视化基础与应用-04-seaborn库从入门到精通03

总结 本系列是数据可视化基础与应用的第04篇seaborn&#xff0c;是seaborn从入门到精通系列第3篇。本系列的目的是可以完整的完成seaborn从入门到精通。主要介绍基于seaborn实现数据可视化。 参考 参考:数据可视化-seaborn seaborn从入门到精通03-绘图功能实现01-关系绘图 …

在ubuntu22.04系统上用pycharm编写第一个ros2程序

1.打开终端&#xff08;快捷键altctrlt&#xff09;&#xff0c;创建工作空间&#xff0c;工作空间就是文件夹 2.创建一个功能包 打开pycharm的终端&#xff08;altf12&#xff09; 3.创建节点文件 在village_li文件夹右键新建li4.py 4.在li4.py编写代码 5.在setup.py里面添加…

http模块 获取http请求报文中的路径 与 查询字符串

虽然request.url已包含属性和查询字符串&#xff0c;但使用不便&#xff0c;若只需其中一个不好提取&#xff0c;于是用到了如下路径和字符串的单独查询方法&#xff1a; 一、获取路径 例如&#xff1a;我在启动谷歌端口时输入http://127.0.0.1:9000 后接了 "/search?k…

一文解释python中的实例方法,类方法和静态方法作用和区别是啥?该如何使用

我们都知道 &#xff0c;python类中有三种常见的方法 &#xff0c;分别是实例方法 &#xff0c;类方法和静态方法 。那么这几个方法到底有什么作用 &#xff1f; 它们之间有什么区别 &#xff1f;该如何使用 &#xff1f; 带着这些问题 &#xff0c;下面我们就来了解下这三种方…

基于FPGA实现的自适应三速以太网

一、三速以太网 千兆以太网PHY芯片是适配百兆和十兆的&#xff0c;十兆就不管了&#xff0c;我们的设计只适应千兆和百兆。 根据上图&#xff0c;我们是可以获取当前主机网口的速率信息的。 always(posedge w_rxc_bufr) beginif(w_rec_valid d0) beginro_speed < w_rec_…

Ubuntu系统部署Inis博客结合内网穿透实现公网访问本地站点

文章目录 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试总…

java一和零(力扣Leetcode474)

一和零 力扣原题 给定一个二进制字符串数组 strs 和两个整数 m 和 n&#xff0c;请你找出并返回 strs 的最大子集的长度&#xff0c;该子集中最多有 m 个 0 和 n 个 1。 示例 1&#xff1a; 输入&#xff1a;strs [“10”, “0001”, “111001”, “1”, “0”], m 5, n …

RabbitMQ3.x之二_RabbitMQ所有端口说明及开启后台管理功能

RabbitMQ3.x之二_RabbitMQ所有端口说明及开启后台管理功能 文章目录 RabbitMQ3.x之二_RabbitMQ所有端口说明及开启后台管理功能1. RabbitMQ端口说明2. 开启Rabbitmq后台管理功能1. 查看rabbitmq已安装的插件2. 开启rabbitmq后台管理平台插件3. 开启插件后&#xff0c;再次查看插…

itextPdf生成pdf简单示例

文章环境 jdk1.8&#xff0c;springboot2.6.13 POM依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version></dependency><dependency><groupId>com.ite…

Ruoyi若依框架下载流程详细解读(SpringBoot-Vue)

图解&#xff1a; 前端设计&#xff1a; 前端设计一个link文字连接或者按钮&#xff08;ElementUI&#xff09;Element - The worlds most popular Vue UI framework 前端请求设计&#xff1a; import request from /utils/request //下载示例模型定义语言的JSON export const…

pe启动盘破解windows密码wins电脑登录密码修改重置

目录 1.进入电脑BIOS&#xff0c;设置电脑第一启动项为U盘启动2.进入微pe系统3.然后点击界面最左下方的Windows图标4.点击windows密码选择对应用户名称修改&#xff1b; 1.进入电脑BIOS&#xff0c;设置电脑第一启动项为U盘启动 把u盘插到要清除密码的电脑&#xff0c;然后开机…

基于nodejs+vue基于hive旅游数据的分析与应用python-flask-django-php

系统阐述的是使用基于hive旅游数据的分析与应用系统&#xff0c;对于nodejs结构、MySql进行了较为深入的学习与应用。主要针对系统的设计&#xff0c;描述&#xff0c;实现和分析与测试方面来表明开发的过程。开发中使用了express框架和MySql数据库技术搭建系统的整体架构。利用…

原生 HTML/CSS/JS 实现右键菜单和二级菜单

文章来源&#xff1a;www.huhailong.vip 站点 文章源地址&#xff1a;https://www.huhailong.vip/article/1764653112011841538 Demo效果演示地址 先看效果图 {{{width“auto” height“auto”}}} 需要注意的就是边界检测处理&#xff0c;到极端点击底部和右侧时如果不做处理会…

ffmpeg拉流并解码

流程 注意事项 版本不同导致的api差异资源安全释放

【多模态融合】SuperFusion 激光雷达与相机多层次融合 远距离高清地图预测 ICRA 2024

前言 本文介绍激光雷达与相机进行多层次融合&#xff0c;包括数据级融合、特征级融合和BEV级融合。 融合后的BEV特征可以支持不同的任务头&#xff0c;包括语义分割、实例编码和方向预测&#xff0c;最后进行后处理生成高清地图预测&#xff0c;它是来自ICRA 2024的。 会讲解…

2002-2023年各地级市环境规制强度数据(环保词频统计)

2002-2023年各地级市环境规制强度数据&#xff08;环保词频统计&#xff09; 1、时间&#xff1a;2002-2023年 2、来源&#xff1a;政府工作报告 3、指标&#xff1a; 行政区划代码、年份、城市、所属省份、文本总长度、仅中英文-文本总长度、文本总词频-全模式、文本总词频…