Web动态按钮设计——波纹扩散

Posted Chivas_/Regal

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web动态按钮设计——波纹扩散相关的知识,希望对你有一定的参考价值。

📕效果演示

这里是个"明色" ⟺ \\Longleftrightarrow "暗色"主题切换按钮的应用

在这里插入图片描述

📕制作过程

🎈 [.html]

分析一下主体部分
一个会有变大扩散动画的圆(无法点击:<div>
里面还有一个保持原大小的圆(可以点击:<button>

<body id="bd">
<div id="divDay">
	<button id="butn" onclick="Change()"></button>
</div>

🎈 [.css]

分析并设计样式

body
开始的时候界面是明色,背景自然需要是白色
由于开始背景自然是白色,所以我们不需要设计body的css样式,只需要固定一个id以便后面js更改

div
要有对比,所以我们的动画层#divDay{}
颜色是黑色

background-color: black;

边角圆形

border-radius: 50%;

大小位置abosulute一下就行(这里是居中)

position: absolute;
width: 70px;
height: 70px;
top: 50%;
margin-top: -35px;
left: 50%;
margin-left: -35px;

动画层过渡@keyframes kf_div{}的时候
0%的状态还是原样式
100% 的状态要是最后状态:
大小更大

width: 140px;
height: 140px;

偏移量重修

margin-top: -70px;
margin-left: -70px;

颜色贴近背景

background-color: white;

鼠标响应#divDay:hover{}设置一下动画:1s的每次演示时间、动画样式、持续次数无限

animation: 1s kf_div infinity;

然后我们再设置一套"暗色模式"的样式#divNight{}#divNight:hover{}@keyframes vid_fk{}(方便后期js修改)
也就是对颜色进行一下改变就行了「black → \\rightarrow white」or 「white → \\rightarrow black」

button
#butn{}
#divDay{}保持一致即可
加一个阿里的矢量图标
大小设置为块大小

background-img: url('');
background-size: 70px 70px;

删除一下按钮的边框

*{ border: 0px none black; }

🎈[.js]

一个主题切换方法function Change(){}即可
通过body的background判断一下是明色主题还是暗色主题

if(document.getElementById('butn').style.backgroundColor == "black"){

}else{

}

每次要切换的就四个样式

1.body的background

document.getElementById('bd').style.backgroundColor = "";

2.button的background

document.getElementById('butn').style.backgroundColor = "";

3.button的background-img

document.getElementById('butn').style.backgroundImage = "url('')";

4.div的id

document.getElementById('').id = "";

最后,别忘了在.html文件里面导入就行了

📕成品代码

传送门

以上是关于Web动态按钮设计——波纹扩散的主要内容,如果未能解决你的问题,请参考以下文章

一起Talk Android吧(第五百一十五回:绘制向外扩散的水波纹)

canvas水波纹效果

一起Talk Android吧(第五百一十六回:绘制压力扩散图)

matlab练习程序(水波特效)

matlab练习程序(水波特效)

波纹按钮实现