助力高考,一组彩色的文字

2024-06-11 04:36

本文主要是介绍助力高考,一组彩色的文字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、获取文本内容

首先,获取每个<div>元素的文本内容,并清空其内部HTML(innerHTML = "")。

2、创建<span>元素

然后,它遍历文本的每个字符,为每个字符创建一个新的<span>元素,并将该字符设置为<span>元素的文本内容。

3、设置样式

为每个<span>元素设置外边距(marginRight),这样字符之间会有一定的间隔。

4、打乱顺序

使用shuffle函数随机打乱<span>元素的顺序。这个函数通过Fisher-Yates算法实现随机置换。

5、应用随机变换

applyRandomTransform函数为每个<span>元素随机生成位移(xOffset和yOffset)和旋转角度(rotation),并应用CSS的transform属性来改变每个字符的位置和方向。

6、随机颜色变化

changeColorSequentially函数逐个改变<span>元素的颜色,每次只改变一个字符的颜色,并在颜色变化时保持顺序感。它使用getRandomColor函数生成随机颜色代码。

7、定时器

通过setInterval函数,changeColorSequentially和applyRandomTransform函数被定期调用,使得颜色和变换效果持续发生,创建动态变化的效果。

8、文本描边和阴影

在CSS中,使用-webkit-text-stroke-width和-webkit-text-stroke-color为文本添加描边效果,使用text-shadow添加阴影效果,增强文本的视觉效果。

<template><div><!-- <img alt="Vue logo" src="./assets/logo.png"> --><HelloWorld msg="Welcome to Your Vue.js App" /><!-- <router-view /> --><div class="bodys"><div class="rugrats">高考加油!</div><div class="rugrats">榜上有名!</div><div class="rugrats">繁花似锦!</div></div></div>
</template><script>
import HelloWorld from "./components/HelloWorld.vue";export default {name: "App",components: {HelloWorld,},mounted() {this.init();},methods: {init() {const divs = document.querySelectorAll(".rugrats");divs.forEach(function (div) {const text = div.textContent;div.innerHTML = "";for (let i = 0; i < text.length; i++) {const span = document.createElement("span");span.textContent = text[i];span.style.marginRight = "1vw";div.appendChild(span);}let spans = div.querySelectorAll("span");function shuffle(array) {for (let i = array.length - 1; i > 0; i--) {const j = Math.floor(Math.random() * (i + 1));const temp = array[i];array[i] = array[j];array[j] = temp;}return array;}spans = shuffle(Array.from(spans));function getRandomValue() {return Math.random() * 0.4 - 0.24;}function applyRandomTransform() {spans.forEach(function (span) {const xOffset = getRandomValue() * 10;const yOffset = getRandomValue() * 15;const rotation = getRandomValue() * 6;span.style.transform ="translate(" +xOffset +"px, " +yOffset +"px) rotate(" +rotation +"deg)";span.style.textIndent = xOffset + "px";});}function getRandomColor() {const letters = "0123456789ABCDEF";let color = "#";for (var i = 0; i < 6; i++) {color += letters[Math.floor(Math.random() * 16)];}return color;}let currentIndex = 0;function changeColorSequentially() {spans.forEach(function (span, index) {let colorIndex = (index + currentIndex) % spans.length;span.style.color =colorIndex === 0? getRandomColor(): spans[colorIndex - 1].style.color;});currentIndex = (currentIndex + 1) % spans.length;}setInterval(changeColorSequentially, 250);setInterval(applyRandomTransform, 100);});},},
};
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;
}
.bodys {margin: 10vh;text-align: center;font-size: calc(5vw + 4vh);background: #314d79;color: #fff;font-family: sans-serif;letter-spacing: -0.3vw;overflow: hidden;font-family: "Lacquer", system-ui;
}.rugrats {margin: 0 auto;text-align: center;
}
.rugrats span {display: inline-block;transition: color linear 0.5s forwards;-webkit-text-stroke-width: 0.32vw;-webkit-text-stroke-color: black;text-shadow: 0.4vw 0.5vw #000;
}.rugrats span {text-transform: capitalize;text-transform: lowercase;
}
</style>

这篇关于助力高考,一组彩色的文字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1050207

相关文章

高考志愿填报:选好专业还是选好学校?

目录 引言 专业解析 工科类专业 文科类专业 医药类专业 商科类专业 名校效应分析 名校声誉的影响 教育资源和研究机会 学术氛围和创新能力 就业优势 好专业和好学校的权衡 职业目标的判断 行业需求的考量 教育质量的比较 结论 引言 2024年高考帷幕落下,一场新的思考与选择悄然来临。对于每一位高考考生,学校和专业都是开启大学新生活的两个前置必

前端 CSS 经典:文字描边

前言:文字描边有两种实现方式 1. text-shadow 设置 8 个方向的文字阴影,缺点是只有八个方向,文字转角处可能有锯齿状。不支持文字透明,设置 color: transparent,文字会成描边颜色。 <!DOCTYPE html><html lang="en"><head><meta charset="utf-8" /><meta http-equiv="X-UA-Comp

FastAdmin/bootstrapTable 表格中生成的按钮设置成文字

公司有个系统后台框架用的是FastAdmin,后台表格的操作栏按钮只有图标,想要设置成文字。 查资料后发现其实很简单,主需要新增“text”属性即可,如下 buttons: [{name: 'acceptcompany',title: '复核企业',text:'复核企业',classname: 'btn btn-xs btn-primary btn-dialog',icon: 'fa fa-pe

LeetCode.25K个一组翻转链表详解

问题描述 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。 问题理解 给定一个链表和一个数字 k,任务是将链表中的每 k 个节点做一次翻转,如果链表的长度不是 k 的整数倍,则剩余

Viewpager+Fragment滑动更改ListView数据和设置title文字的变化

设置ListView的数据更改只有几行代码,不用说了; 设置title的文字的变化:给ViewPager设置监听器,Viewpager变化的时候,给文字添加渐变,滑动完成后设置文字最终的大小 主要代码如下: /** * ViewPager切换监听方法 */public ViewPager.OnPageChangeListener pageListener = new ViewP

高考志愿填报选专业,学校的城市和学习环境分析

高考分数出炉之后,如何填报志愿选专业,根据以往的数据统计,有相当部分的同学,错失了自己喜欢的专业,而不得不接受调剂。有的同学被调剂到冷门专业,有的同学则是被综合实力相对较差的学校录取,所以高考志愿填报是一件需要格外慎重的事,必须打起十二分精神,也需要懂得听取多方意见,权衡利弊的做选择。 那对于高考生而言,在高考志愿填报中,如何对学校地理位置与学校环境进行考量呢? 高中生(填报志愿,选专业),可

allWebPlugin助力iWebOffice2015插件在高版本浏览器使用

allWebPlugin简介      allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品,致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX插件直接嵌入浏览器,实现插件加载、界面显示、接口调用、事件回调等。支持谷歌、火狐等浏览器,接口调用友好、集成方便。为用户提供“信息化系统 + allWebPlugin + 插件 + 浏览器”的解决方案。

2024全国各地高考录取分数线一览表(含一本、二本、专科)

2024年高考录取分数线陆续公布,上大学网(www.sdaxue.com)为大家整理全国31个省市高考录取分数线汇总,包括本科批、专科批和特殊类招生控制分数线汇总,来看看你的省份多少分能上大学吧。 一、2024年全国高考录取线一览表 1、宁夏 一本线:文科496分、理科432分; 二本线:文科419分、理科371分; 专科线:文理科均为200分。 2、云南 一本线:文科550分、

Qt: QPushButton 按钮实现 上图标下文字

效果如下:  实现有如下几种方式: 1. 使用 QPushButton 设置 setStyleSheet 例: ui->recorder->setStyleSheet("QPushButton{"\"border: 1px solid #00d2ff; "\"min-height: 60px; "\"color: #FFFFFF;;

HTML文字修饰标签

内容修饰标签 文字斜体 <i></i>、<em></em>加粗 <b></b>、<strong></strong>下标 <sub></sub>上标 <sup></sup>下划线 <ins></ins>删除线 <del></del>