前端|动态发光按钮

简介: 前端|动态发光按钮

问题描述

通常我们在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

结语

本篇文章中用到的前端效果是通过网上视频教学来完成的。其中的重点是用@keyframesanimation结合的动画效果以及其中的JavaScript代码,如有错误还请指正。





目录
相关文章
|
3月前
|
JavaScript 前端开发
vue前端下载,实现点击按钮弹出本地窗口,选择自定义保存路径
这个不用代码实现(网上也找不到方法可以调出另存为窗口),更改浏览器设置就可以,否则,现在的浏览器都是默认直接保存到下载路径中
241 3
|
9月前
|
前端开发 数据格式
jeecgboot前端antd Table组件动态合并单元格
jeecgboot前端antd Table组件动态合并单元格
317 0
|
10月前
|
前端开发 JavaScript 定位技术
GIS前端编程-地理事件动态模拟
GIS前端编程-地理事件动态模拟
74 0
|
5天前
|
前端开发
前端ElementPlus框架中的几种图标按钮使用方式
本文介绍了如何在Element Plus前端框架中使用带有图标的按钮,包括设置按钮大小、图标大小、按钮类型以及如何为图标添加点击事件。
28 0
|
2月前
|
前端开发 JavaScript API
探索现代Web开发中的动态数据交互——前端与后端整合实战
本文探讨了现代Web开发中前端与后端整合的关键技术点,通过实际案例演示了如何利用JavaScript和Node.js实现动态数据交互,全面解析从数据请求到响应的全过程。
119 18
|
27天前
|
存储 前端开发 JavaScript
前端菜单及按钮权限拦截,实现方案及思路
此实现方案基于vue框架,并需要依赖vue项目相关的库,router、store等等;前端同学要与后端同学协商,常规是让后端返回一个树结构的菜单数据,并且将所有的涉及权限控制的页面path给到后端,如果是按钮,需要把所有的按钮 code 码统一下,这是前期工作,很重要。
|
1月前
|
前端开发 JavaScript PHP
技术心得:前端点击按钮,导入excel文件,上传到后台,excel接收和更新数据
技术心得:前端点击按钮,导入excel文件,上传到后台,excel接收和更新数据
30 0
|
1月前
|
前端开发 API
支付系统27-------梳理一下支付按钮,前端的代码
支付系统27-------梳理一下支付按钮,前端的代码
|
1月前
|
JavaScript 前端开发
前端 JS 经典:动态执行 JS
前端 JS 经典:动态执行 JS
16 0
|
3月前
|
开发框架 前端开发 JavaScript
【Flutter前端技术开发专栏】Flutter中的动态UI构建与数据驱动视图
【4月更文挑战第30天】Flutter是一款高效跨平台移动开发框架,以其热重载、高性能渲染和丰富组件库著称,简化了动态UI和数据驱动视图的实现。本文深入讨论了动态UI构建原理,包括基于Widget树模型的UI更新和状态管理,如使用StatefulWidget和数据流库(如Provider、Redux)。此外,文中还介绍了实现技巧,如使用ListView等可滚动组件、StreamBuilder进行数据流驱动的UI更新,以及应用响应式布局以适应不同设备。Flutter为开发者提供了构建高效动态界面的强大工具。
72 0
【Flutter前端技术开发专栏】Flutter中的动态UI构建与数据驱动视图