网站首页 > 基础教程 正文
最近,迷上了CSS3特效,空闲时间学一些小案例,非专业,爱好。不断学习也能掌握一些更为全面的html,css,JavaScript的知识,以小博大,从兴趣出发再掌握更多网页开发知识。闲言少叙,直接开怼。
第一步:
建两个文件,一个为index.html,一个为style.css。把style.css绑定到index.html文件头部进行关联。
第二步:
1、index.html文件输入简单代码。
<section>
<p class="text">
大家好,我就是玉树临风、高大威猛、人称山崩地裂水倒流、鬼见愁、美貌与智慧结合、英雄与侠义化身,人见人爱、花见花开、车见车爆胎、为朋友可以两肋插刀、为女朋友可以插朋友两刀的二哥。今天分享一个香消玉殒的文字效果。
</p>
</section>
其中文字可自行调整,当然要直接复制这段二哥也不介意。
2、style.css写全局样式和text样式
*{
margin: 0;
padding: 0;
box-sizing: border-box;
}
section{
position: relative;
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
overflow:hidden;
background: #111;
}
section .text{
color: #fafafa;
max-width: 750px;
text-align: justify;
font-size: 20px;
line-height: 48px;
user-select: none;
letter-spacing: 1px;
}
第三步:
通过javascrip把text样式中的文字炸成一个一个的<span></span>标签。
在index.html写入JavaScript代码。
<script type="text/javascript">
// 把text文字大爆炸
const text = document.querySelector(".text");
text.innerHTML = text.textContent.replace(/\S/g, "<span></span>");// 正则中的s为大写,不然炸不动
</script>
第四步:
在style.css文件中写入span样式
section .text span{
position: relative;
cursor: pointer;
display: inline-block;
}
第五步:
在index.html中通过JavaScript在span中增加active样式
<script type="text/javascript">
// 把text文字大爆炸
const text = document.querySelector(".text");
text.innerHTML = text.textContent.replace(/\S/g, "<span></span>");
const letters = document.querySelectorAll("span");
for (let i=0; i<letters.length; i++) {
letters[i].addEventListener("mouseover", function(){
letters[i].classList.add('active')
})
}
</script>
第六步:
这是见证奇迹的一步,在style.css样式中写入active样式和香消玉殒动画。
section .text span.active{
animation: smoker 4s linear forwards;
}
@keyframes smoker{
0%{
opacity: 1;
filter: blur(0);
transform: scale(1) translateX(0) translateY(0) rotate(0);
}
50%{
opacity: 1;
pointer-events: none;
}
100%{
opacity: 0;
filter: blur(20px);
transform: scale(8) translateX(300px) translateY(-300px) rotate(720deg);
}
}
总结:这里代码没有标注,如果初学者遇到了看不懂的属性或事件。可以复制搜索引擎查看相应的知识点,一次也许记不住,操作得多了就知道了。到最后还能举一反三,好多以前不理解的知识就会恍然大悟。
猜你喜欢
- 2025-04-27 教你从头开始写课堂签到的微信小程序(二)实现签到及视频播放
- 2025-04-27 手把手教你实现振动记录器
- 2025-04-27 用豆包生成的BMI计算器
- 2025-04-27 Flex 布局 vs 颈椎排列:如何拯救你的 “代码脖”?
- 2025-04-27 课堂点名总尴尬?试试 DeepSeek,或能实现点名自由!(附教程)
- 2025-04-27 新拟态 UI
- 2025-04-27 一文搞懂flex(弹性盒布局)
- 2025-04-27 CSS笔记——弹性布局(flex弹性盒模型)
- 2025-04-27 基于微信小程序实现幸运大转盘页面
- 2025-04-27 网页世界隐藏的神秘代码语言,竟能这样改变布局
- 04-27教你从头开始写课堂签到的微信小程序(二)实现签到及视频播放
- 04-27手把手教你实现振动记录器
- 04-27用豆包生成的BMI计算器
- 04-27Flex 布局 vs 颈椎排列:如何拯救你的 “代码脖”?
- 04-27如何做出一个香消玉殒的网页文字特效
- 04-27课堂点名总尴尬?试试 DeepSeek,或能实现点名自由!(附教程)
- 04-27新拟态 UI
- 04-27一文搞懂flex(弹性盒布局)
- 最近发表
- 标签列表
-
- 菜鸟教程 (58)
- jsp (69)
- c++教程 (58)
- pythonlist (60)
- gitpush (61)
- pythonif (68)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)