前端|动态发光按钮
时间:2022-07-23
本文章向大家介绍前端|动态发光按钮,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
问题描述
通常我们在HTML表单中使用button元素,是通过<button>标签定义一个按钮,再在button元素内部来放置内容,动态发光按钮原理类似。动态发光按钮是通过CSS工具使按钮呈现颜色渐变效果,最后引入JavaScript使得按钮发光的一种效果。
解决方案
制作动态发光按钮时,要注意以下细节:
使用background: linear-gradient标签来设置按钮颜色的渐变效果。
制作过程:
(1)设置页面背景,使用背景图片填充网页。使图片的高度height:100vh;让网页高度撑满,background标签后面加上no-repeat让背景不重复,使用background-size: cover;把背景图像扩展至足够大,让背景图像完全覆盖背景区域。
* {
padding: 0;
margin: 0;
}
body {
height: 100vh; /*让高度页面撑满*/
background: url(fg1.jpg) no-repeat;
background-size: cover;
}
ul {
list-style: none;
}
button {
outline: none;
border: none;
}
(2)创建一个容器class="firefly"的按钮,并为它添加CSS效果。
.firefly {
width: 180px; /*宽度*/
height: 60px; /*高度*/
position: absolute; /*绝对定位*/
top: 50%;/*网页顶部距离*/
left: 50%;/*网页左边距离*/
transform: translate(-50%, -50%);/*实现水平垂直居中*/
background: linear-gradient(to right, #55c3a0 10%, #f7d66e);/*background-images:linear-gradient(位置,颜色1,颜色2…颜色n);*/
border-radius: 40px;/*设置圆角*/
opacity: .88;/*透明程度*/
cursor: pointer;/*光标呈现为指示链接的指针(一只手)*/
transition: 1s;/*平滑过渡的时间*/
}
.firefly:hover { /*鼠标移上按钮时*/
box-shadow: 0 0 10px #B4FFB4; /*阴影大小,颜色*/
}
.firefly p {
line-height: 60px; /*行高:与高度相同时,文字呈现在按钮中心*/
font-size: 22px;
color: #e4e4d5;
font-family: firefly;
opacity: .88;
}
(3)为按钮设置发光内边框和发光气泡点。
<div><!--气泡-->
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
.lightning {
width: 95%;
height: 80%;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
border-radius: 40px;
transition: .8s;
overflow: hidden;/*隐藏溢出,清除浮动*/
}
.firefly:hover .lightning {
box-shadow: 0 0 4px #B4FFB4 inset;/*鼠标上移时,按钮内边框的大小颜色*/
}
.lightning ul {
opacity: 0;
transition: .8s;
}
.firefly:hover ul {
opacity: .8;
}
.lightning ul li { /*气泡*/
width: 5px;
height: 5px;
background-color: #91FA91;/*气泡颜色*/
position: absolute;
bottom: 10%;/*距按钮底部距离*/
border-radius: 50%;
opacity: .6;
animation: fireflymove infinite linear;/*动画:动画名称 间隔时间 动画的速度曲线*/
}
@keyframes fireflymove {/*设置动画效果*/
100% {
bottom: 100%; /*要实现的css样式*/
}
}
(4)引入JavaScript,为按钮内气泡设置不同的高低位置和运行速度。
<script>
var lgh = $('.lightning li').length;
$('.lightning li').each(function(i) {
$(this).css({
left: i * (100/lgh) + '%',
bottom: randomNum(-20, 10) + '%', //为气泡设置不同高度
animationDuration: randomNum(1, 5) + 's'//动画
});
});
// 随机数方法:
function randomNum(max, min) {
var num = Math.floor(Math.random() * (max-min+1) + min);
return num;
}
</script>
效果图:
图1
图2
结语
本篇文章中用到的前端效果是通过网上视频教学来完成的。其中的重点是用@keyframes和animation结合的动画效果以及其中的JavaScript代码,如有错误还请指正。
END
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- ubuntu安装多个版本的CUDA并随时切换
- 如何在Ubuntu 18.04(实体机)上配置OpenWRT的开发环境
- Android 组合控件实现布局的复用的方法
- Android编程实现播放音频的方法示例
- 使用VSCode的Remote-SSH连接Linux进行远程开发
- Android ListView之EfficientAdapte的使用详解
- JavaScript:ECMAScript 2020中的新增功能
- Android编程实现播放视频的方法示例
- Android开发之RadioGroup的简单使用与监听示例
- Android 根据手势顶部View自动展示与隐藏效果
- Vue 3 如何安装
- Android实现状态栏(statusbar)渐变效果的示例
- Linux中stat函数和stat命令使用详解
- Android Beam 文件传输失败分析与解决方法
- Android实现修改状态栏背景、字体和图标颜色的方法